Docker-理解镜像构成

  1. 我们之前就了解到了,docker的镜像并非是一个整体镜像,而是一个分层存储,每一层都是在前一层的基础上进行的修改,而容器也是这样的,是多层存储的
  2. 我们现在来启动一个镜像

    $ docker run --name webnginx -d -p 80:80 nginx
    • -p:表示将容器内的80端口映射到物理机的80端口
    • -d:后台运行
  3. 当运行起来后,我们浏览器访问 localhost,会看到nginx的标志

Docker-理解镜像构成_第1张图片

  1. 到这我们是对刚拉下来的镜像我们没有任何的修改,现在我们将对nginx的欢迎界面进行初始化
  2. docker进入容器更改nginx配置文件

    $ docker exec -it webnginx bash
    $ root@b5c597a4f124:/# echo '

    HELLO DOCKER

    ' > /usr/share/nginx/html/index.html $ docker restart webnginx

  3. 再次访问localhost,会看到我们更改后的信息

markdown_img_paste_20190308160629969

  1. 到这我们就已经开始更改了容器内的/usr/share/nginx/html/index.html文件,这就会造成现在的镜像和之前的镜像的存储层已经发生了改变,docker也可以检测到这个更改
  2. docker 检测差异

    [qidai@qidai-pc ~]$ docker diff webnginx
    C /run
    A /run/nginx.pid
    C /usr
    C /usr/share
    C /usr/share/nginx
    C /usr/share/nginx/html
    C /usr/share/nginx/html/index.html
    C /var
    C /var/cache
    C /var/cache/nginx
    A /var/cache/nginx/client_temp
    A /var/cache/nginx/fastcgi_temp
    A /var/cache/nginx/proxy_temp
    A /var/cache/nginx/scgi_temp
    A /var/cache/nginx/uwsgi_temp
    C /root
    A /root/.bash_history
  3. 上面除了cache的改变和pid文件的创建,发生更改的文件已经显而易见了
  4. 目前就是在原有刚拉取过来的镜像的基础上发生了一层改变,并形成了一个新的镜像,如果现在这个nginx的欢迎界面正是我们需要的,我们就可以将此镜像进行保存
  5. 如下是我画的一个图,相信到这我们就很直观的理解了docker是一层层的存储层的变化来构成一个dcoker镜像

Docker-理解镜像构成_第2张图片

  1. 对于docker镜像的保存,下面说

你可能感兴趣的:(Docker-理解镜像构成)