docker如何将容器做出镜像

docker如何将容器做出镜像?做出镜像可以使用commit命令或dockerfile的方式,commit命令比较简单,相当于docker依据container内部执行的命令自动生成dockerfile,并进行了build,比较适合对dockerfile不熟悉的用户;dockerfile比较适合批量处理的场景。

使用docker commit命令做镜像

1. pull一个centos6.6的基础镜像,并运行一个docker container,然后在其中进行定制化(安装、配置服务等);

[root@localhost ~]# docker pull centos:6.6
Pulling repository centos
8b44529354f3: Download complete
f1b10cd84249: Download complete
Status: Downloaded newer image for centos:6.6
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
centos 6.6 8b44529354f3 4 days ago 202.6 MB
centos centos6.6 8b44529354f3 4 days ago 202.6 MB
[root@localhost ~]# docker run -i -t centos:6.6 bash
[root@b42c1ba929a9 /]# ls
bin dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
[root@b42c1ba929a9 /]# mkdir /test.txt
[root@b42c1ba929a9 /]# exit
exit

接下来,查看一下container的改动:

[root@localhost ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b42c1ba929a9 centos:6.6 "bash" About a minute ago Exited (0) 22 seconds ago berserk_mcclintock
804a56ce8008 f1b10cd84249 "/echo hello" 22 minutes ago test
[root@localhost ~]# docker diff b42c1ba929a9
C /tmp
A /test.txt
C /root
A /.bash_history

2. 执行docker commit命令创建一个镜像:

[root@localhost ~]# docker commit -m "new container" b42c1ba929a9 /newcontainer1
07b146e0be9e98c253122784c3837dd1604f7692e794f3601dad747d41901cd4
[root@localhost ~]# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
/newcontainer1 latest 07b146e0be9e 43 seconds ago 202.6 MB
centos 6.6 8b44529354f3 4 days ago 202.6 MB
centos centos6.6 8b44529354f3 4 days ago 202.6 MB

3. 登录docker,并将该镜像push到docker仓库:

[root@localhost ~]# docker login
Username: yuanhuan
Password:
Email: yuanhuan_2005@
Login Succeeded
[root@localhost ~]# docker push /newcontainer1
The push refers to a repository [/newcontainer1] (len: 1)
Sending image list
Pushing repository /newcontainer1 (1 tags)
f1b10cd84249: Image already pushed, skipping
8b44529354f3: Image already pushed, skipping
07b146e0be9e: Image successfully pushed
Pushing tag for rev [07b146e0be9e] on {}

作者:网易云社区;来源:简书;链接:

融亿云的容器云产品是通过docker技术,在云计算集群服务器上部署容器云服务实现,功能强大、简单易用,可自行DIY选择网络计费方式,可作集群服务,自由搭建私有网络。

高可用的的容器云

最后更新:2022/05/18
免责声明:本站部分内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。
如果您发现本社区中有涉嫌抄袭的内容请发送邮件至:Hi@r1yun.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

在线评论