Docker之镜像管理及Dockerfile

本文详细介绍了Docker镜像的工作原理,包括其分层存储的特性,以及如何通过`docker history`查看镜像内容。接着讲解了镜像管理的基本操作,并重点阐述了Dockerfile的使用,包括ENTRYPOINT与CMD的区别。此外,还展示了如何构建部署Nginx和Java网站,强调了在构建过程中减少镜像层数和优化镜像大小的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、镜像工作原理

二、镜像管理

二、Dockerfile

三、构建部署Nginx

四、构建部署Java网站


镜像:

  1. 一个分层存储的文件:

    优点:易于扩展、优化存储空间

  2. 一个软件的环境

  3. 一个镜像可以用于创建多个容器

  4. 一种标准化的交付

一、镜像工作原理

镜像不是一个单一的文件,而是有多层构成。可以通过 docker history <ID/NAME> 查看镜像中各层内容及大小,每层对应着 Dockerfile中的一条指令。

$ docker history nginx:1.14
IMAGE               CREATED             CREATED BY                                      SIZE                COMMENT
86898218889a        3 weeks ago         /bin/sh -c #(nop)  CMD ["nginx" "-g" "daemon…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  STOPSIGNAL [SIGTERM]         0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  EXPOSE 80/tcp                0B                  
<missing>           3 weeks ago         /bin/sh -c ln -sf /dev/stdout /var/log/nginx…   22B                 
<missing>           3 weeks ago         /bin/sh -c set -x  && apt-get update  && apt…   53.7MB              
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NJS_VERSION=1.14.0.0.…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  ENV NGINX_VERSION=1.14.0-…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  LABEL maintainer=NGINX Do…   0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop)  CMD ["bash"]                 0B                  
<missing>           3 weeks ago         /bin/sh -c #(nop) ADD file:e6ca98733431f75e9…   55.3MB              

容器其实是在镜像的最上面加了一层读写层,在运行的容器中有文件改动时,会先从镜像里把要写的文件复制到容器自己的文件系统中,都会写到这个读写层。如果容器删除了,最上面的读写层也就删除了,改动也就丢失了。所以无论多少个容器共享一个镜像,所做的写操作都是从镜像的文件系统中复制过来操作的,并不会修改镜像的源文件,这种方式提高了磁盘利用率。

若想持久化这些改动,可以通过 docker commit 将容器保存成一个新的镜像。

二、镜像管理

常用选项:

$ docker image --help
<
OPTIONS DESCRIBE
ls/images 列出镜像
pull 从仓库拉取镜像到本地
push 从本地上传镜像到仓库
inspect 显示详情
history 镜像历史信息
import 导入tar归档的容器文件系统创建镜像
save 保存一个镜像到tar归档文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值