2022
我们一起努力

docker 镜像和容器的关系(docker镜像和容器是什么)

docker 镜像和容器的关系是什么?容器是镜像的实例,先描述镜像,再创建容器,所以容器可以有多个。镜像是一个只读的文件系统,在本地会共用,主要是通过签名来实现的,类似于存储里面的De-dup技术。

每运行一个容器,会在镜像上加一个可写层,但这一层并不会改变镜像本身,这也就是为什么有时候你用同一个镜像启动多个容器,里面的内容是不会变的。如果你要将可写层持久化,就要通过 commit命令来把这个可写层写到磁盘上,即生成新的镜像。

总的来说,镜像是文件, 容器是进程。容器是基于镜像创建的,即容器中的进程依赖于镜像中的文件,这里的文件包括进程运行所需要的可执行文件、依赖软件、库文件、配置文件等等。

假设,你需要把nginx(web服务器)运行在docker容器中, 则第一步要下载nginx镜像:

sudo docker pull nginx

下载nginx镜像之后可以查看Docker镜像:

sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
nginx latest 0d409d33b27e 2 weeks ago 182.7 MB

事实上, nginx镜像并非一个单独的文件,而是具有层级结构:

sudo docker history nginx
IMAGE CREATED CREATED BY SIZE COMMENT
0d409d33b27e 2 weeks ago /bin/sh -c #(nop) CMD ["nginx" "-g" "daemon o 0 B
missing 2 weeks ago /bin/sh -c #(nop) EXPOSE 443/tcp 80/tcp 0 B
missing 2 weeks ago /bin/sh -c ln -sf /dev/stdout /var/log/nginx/ 0 B
missing 2 weeks ago /bin/sh -c apt-key adv --keyserver hkpcmy.cn/host/ 57.67 MB
missing 2 weeks ago /bin/sh -c #(nop) ENV NGINX_VERSION=1.11.1-1~ 0 B
missing 3 weeks ago /bin/sh -c #(nop) MAINTAINER NGINX Docker Mai 0 B
missing 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B
missing 3 weeks ago /bin/sh -c #(nop) ADD file:5d8521419ad6cfb695 125.1 MB

可知, nginix镜像一共有8层, 其中, 第1层为125.1MB, 第5层为57.67MB, 其他层的大小可以忽略。

将nginx运行在Docker容器中:

sudo docker run -itd
-p 80:80
--name=nginx
nginx

查看nginx容器

sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
263e88fc53d3 nginx "nginx -g 'daemon off" 3 seconds ago Up 2 seconds 0.0.0.0:80- 80/tcp, 443/tcp nginx

可知, nginx容器运行成功。

本公司的容器云是通过docker技术,在集群服务器上部署容器服务实现,功能强大、简单易用,拥有上万linux镜像,秒级开通,容器云产品链接 cmy.cn/host/

免责声明:本站发布的内容(图片、视频和文字)以原创、来自本网站内容采集于网络互联网转载等其它媒体和分享为主,内容观点不代表本网站立场,如侵犯了原作者的版权,请告知一经查实,将立刻删除涉嫌侵权内容,联系我们56dr_com,同时欢迎投稿传递力量。

本文从“特网科技(56dr.com)”转载,原作者保留一切权利,若侵权请联系删除。

赞(0)
文章名称:《docker 镜像和容器的关系(docker镜像和容器是什么)》
文章链接:https://www.fzvps.com/155747.html
本站文章来源于互联网,如有侵权,请联系管理删除,本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
图片版权归属各自创作者所有,图片水印出于防止被无耻之徒盗取劳动成果的目的。

评论 抢沙发

评论前必须登录!