docker 容器保存为镜像_创建Docker镜像和容器

480a4512410cdd7a0f7c3a0ab180405e.png

环境 :Ubuntu18 x86_64 GNU/Linux

准备Dockerfile:

Dockerfile是用来创建Docker镜像的配置文件。

操作步骤:

  1. 创建mydocker文件夹
mkdir mydocker
cd mydocer

2.新建文件Dockerfile(linux下用vim编辑)

vim Dockerfile

3.复制以下内容到该文件

# setting base image
FROM debian
RUN apt-get update
# Set the locale
RUN apt-get install -y locales
RUN sed -i -e 's/# en_US.UTF-8 UTF-8/en_US.UTF-8 UTF-8/' /etc/locale.gen
RUN dpkg-reconfigure --frontend=noninteractive locales
RUN update-locale LANG=en_US.UTF-8
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
# new a directory for sshd to run
RUN mkdir -p /var/run/sshd
# installing ssh server
RUN apt-get install -y openssh-server
# installing sudo
RUN apt-get install -y sudo
# make ssh services use IPv4 to let X11 forwarding work correctly
RUN echo AddressFamily inet >> /etc/ssh/sshd_config
# defining user account imformation
ARG username=yanhui
ARG userpasswd=yanhui
# adding user
RUN useradd -ms /bin/bash $username && (echo $username:$userpasswd | chpasswd)
# adding user to sudo group
RUN adduser $username sudo
# setting running application
CMD /usr/sbin/sshd -D

注意:该文件中有ARG后面的用户名和密码,可以改成你想用的

创建docker:

在这个过程中始终保持联网状态;用下面命令创建镜像:(镜像名可以自己改)

docker build -t yanhui-image .

这条命令将会创建一个标签名为yanhui-image的镜像,并且用的是我们刚在该目录下写的Dokcerfile(如果该命令出错,可能是要用超级用户,在命令前加sudo),默认情况下,该命令执行后会在Docker Hub下载默认debian(我读作:德比安)镜像。

以上都操作完后,可以查看docker现在有哪些镜像:

docker images

以下是我执行后的情况:

95950ceeadc87668ece7e903e13edb27.png

如果你看到了xx-image(你自己起的名字),就成功安装好了镜像。现在可以删掉刚刚那个文件夹了

cd .. # ..是父目录(linux的基础)
rm -r mydocker

创建一个debian的容器:

先认识一下“容器”这个概念,这相当于oop中的实例,是用刚刚创建的镜像生成的一个对象,而刚刚的镜像相当于oop概念中的类

用以下命令创建名为yanhui-vm(名字自己起):

docker create --name=yanhui-vm -p 20022:22 --tmpfs /dev/shm:exec --privileged=true yanhui-image

解释该命令:

  • 参数-p后面的20022是docker主机的端口,22是ssh的默认端口(我们运行了docker的这个容器后,相当于运行的是服务器,只不过是在本地创建的一个服务器,我们要用ssh去连接)
  • yanhui-image是我们刚刚创建的镜像,我们要用这个镜像来创建一个容器
  • --privileged=true 是设定权限,为了可以在容器里用gdb做调试工作
  • 以可执行的方式挂载 /dev/shm

用下面的命令来查看容器是否创建成功:

docker ps -a

这条命令会显示所有的docker容器,如果你看见刚刚创建的xx-vm,就说明创建成功了!

连接容器试试:

用以下命令启动容器:

docker start xx-vm

这个容器开启后是以“脱机”的模式,我们要用ssh连接(ssh的配置我们已经在Dockerfile的结尾部分写好了,用户名和密码都是你自己设置的)

登录:

ssh -p 20022 username@127.0.0.1

经过ssh登录后,你现在就已经在我们刚刚创建的容器的那个系统中了,其他操作就与在linux的操作一样了

关闭容器:

docker stop xx-vm
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值