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 hkp://pgp. 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镜像,秒级开通,容器云产品链接 https://www.west.cn/paas/container/
云服务器1g4g区别云服务器可以转移过户吗-云服务器问题小鱼易连高思教育发起助学肩膀计划 宣传视频感动千万中国人个人有必要购买云服务器么我用链接不成功提示||-虚拟主机/数据库问题新睿云服务器哪个好用域名交易完成之后该如何过户?很多人不懂域名怎么办?注册域名怎么做?