Docker(2):Docker镜像

本文详细介绍了Docker镜像的分层结构,通过命令行和DockerFile两种方式构建镜像,并重点讲解了DockerFile的使用及实战封装nginx服务。此外,还探讨了镜像的优化技巧,包括减少镜像层数、利用构建缓存以及多阶段构建。
摘要由CSDN通过智能技术生成

目录

1、Docker镜像的分层结构

2、docker镜像构建:命令行方法

3、docker镜像构建:DockerFile方法

(1)原理

(2)步骤

4、Dockerfile常用命令

5、DockerFIle实战:镜像封装nginx服务

 6、优化镜像


1、Docker镜像的分层结构

 镜像最底层和主机共享门内核数据,base镜像的实质就是一个最小的linux。

 要注意的是,镜像虽然有很多层,但是可写容器层往下的镜像层都不可写,也就是说我们运行容器后对其进行的修改,实际上都是保存在了可写容器层,如果释放了容器,那么之前所写的数据都会作废,想要保存数据需要把容器层打包

2、docker镜像构建:命令行方法

步骤包括:运行容器、修改容器 、将容器保存为新的镜像,不推荐。

缺点: 效率低、可重复性弱、容易出错 使用者无法对镜像进行审计,存在安全隐患

server11:

docker search busybox  ###在docker仓库中查找名为busybox的镜像

docker info 可以查看docker仓库在哪,即我们上一步的查找是在哪个数据库查找的

 docker pull busybox  ###拉取镜像,需要一段时间从仓库中下载下来

docker images  ###拉取好后用该命令查看本机拉取好的所有镜像

 docker ps ####查看正在运行中的所有容器,发现上一个实验的小游戏还在,我们要删掉这个容器

 docker rm -f demo  ###强制删除

 

接下来我们运行busybox,

docker run -it --name demo busybox ####it表示是交互式进程,不可打入后台,demo是名字,如果不制定,系统会自动分配一个不好打的,所以制定了名字比较方便

在容器内可以用 ls和touch管理文件

ctrl+d退出交互式页面

退出容器后,  docker ps 查看运行中的容器,发现busybox已经关了

 docker ps -a  能看到所有容器,有busybox,说明busybox只存在但是未运行

假如我们后边还想要运行这个容器,可以采用以下步骤:

 docker start demo 启动后再查看,就有busybox了

 docker attach demo 进入交互页面

可以看到我们刚才的文件都在,此时退出容器,并删除   docker rm -f demo

docker run -it --name demo busybox再次创建busybox容器,发现之前的文件没了

          容器的运行和修改都实现了,接下来就是如何保存所作的修改,在这里最简单的办法同样是最不推荐的办法,就是采用commit命令:

修改好相应内容后,退出容器,使用以下命令

 docker commit demo demo:v1  即创建一个demo:v1,这个v1的内容就是修改后的容器内容

docker run -it --name demo demo:v1  运行demo:v1,之前的内容都在

 

 如果不想要修改后的镜像v1,用 docker rmi -f  demo:v1  删除

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值