Docker镜像创建

1.commit方式镜像创建

docker commit 提交容器成为一个新的副本

docker commit -m "提交信息" -a="作者" 容器id 目标镜像名 : [TAG]

例如:

root@bogon \~\]# docker commit -a="ericliux" -m="add webapps" ffbd435c60fd test_tomcat:1.1 查看提交的镜像: ![](https://i-blog.csdnimg.cn/img_convert/c6c5999f0de637263441436ca0328eff.png) **利用新提交的镜像创建新的容器:** ![](https://i-blog.csdnimg.cn/img_convert/be9de683b2c4c8feec90d2bd841567c1.png) **该方法并不提倡,因为操作步骤比较繁琐,三步走方式:** 1. 运行容器 2. 修改容器 3. 将容器保存为新的镜像 该方法并不推荐,实际开发中可跟根据实际情况决定是否应用。 **不推荐的原因:** 纯手工方式,容易出错,每次都要进行着三步方式。也比较繁琐。效率低下。 **安全性也较低,如果基础容器存在恶意程序,那么安全性也存在。** ### 2.Dockerfile创建镜像 ### Dockerfile内容: ![](https://i-blog.csdnimg.cn/img_convert/30baafbd7212b414cedd79deb2e289a8.png) 上图语句解释: FROM 表示以ubuntu镜像为基础 RUN 表示当创建新容器时在执行两条命令为新容器系统更新\&安装vim编辑工具 ### 构建新镜像: **命令:docker build -t 新镜像名:Tag名 -f Dockerfile文件路径** **// 该处表示当前路径下默认时Dockerfile,当前路径可以省略-f参数** [root@bogon docker]# docker build -t ubuntu-vim . [+] Building 0.0s (6/6) FINISHED docker:default => [internal] load build definition from Dockerfile 0.0s => => transferring dockerfile: 154B 0.0s => [internal] load metadata for docker.io/library/ubuntu:latest 0.0s => [internal] load .dockerignore 0.0s => => transferring context: 2B 0.0s => [1/2] FROM docker.io/library/ubuntu:latest 0.0s => CACHED [2/2] RUN apt-get update && apt-get install -y vim 0.0s => exporting to image 0.0s => => exporting layers 0.0s => => writing image sha256:632e922b2191f3a01d047b28daf812423523799a8d78efbfc443d6fb2212a74a 0.0s => => naming to docker.io/library/ubuntu-vim **Dockerfile:** 内容: FROM centos VOLUME ["volume01","volume02"] CMD echo "---end---" CMD /bin/bash 利用创建镜像启动一个容器: [root@localhost docker]# docker run -it centos_liu:1.0 /bin/bash [root@13ce6928177c /]# ls bin dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var volume01 volume02 [root@13ce6928177c /]# ll bash: ll: command not found [root@13ce6928177c /]# ls -l total 0 lrwxrwxrwx. 1 root root 7 Nov 3 2020 bin -> usr/bin drwxr-xr-x. 5 root root 360 Mar 8 07:56 dev drwxr-xr-x. 1 root root 66 Mar 8 07:56 etc drwxr-xr-x. 2 root root 6 Nov 3 2020 home lrwxrwxrwx. 1 root root 7 Nov 3 2020 lib -> usr/lib lrwxrwxrwx. 1 root root 9 Nov 3 2020 lib64 -> usr/lib64 drwx------. 2 root root 6 Sep 15 2021 lost+found drwxr-xr-x. 2 root root 6 Nov 3 2020 media drwxr-xr-x. 2 root root 6 Nov 3 2020 mnt drwxr-xr-x. 2 root root 6 Nov 3 2020 opt dr-xr-xr-x. 307 root root 0 Mar 8 07:56 proc dr-xr-x---. 2 root root 162 Sep 15 2021 root drwxr-xr-x. 11 root root 163 Sep 15 2021 run lrwxrwxrwx. 1 root root 8 Nov 3 2020 sbin -> usr/sbin drwxr-xr-x. 2 root root 6 Nov 3 2020 srv dr-xr-xr-x. 13 root root 0 Nov 9 08:43 sys drwxrwxrwt. 7 root root 171 Sep 15 2021 tmp drwxr-xr-x. 12 root root 144 Sep 15 2021 usr drwxr-xr-x. 20 root root 262 Sep 15 2021 var drwxr-xr-x. 2 root root 6 Mar 8 07:56 volume01 # 生成镜像时挂载的目录 drwxr-xr-x. 2 root root 6 Mar 8 07:56 volume02 # 同上 **上述通过Dockerfile构建的镜像,也能实现卷挂载,从而在使用镜像构建容器是,实现数据同步。**

相关推荐
你觉得20532 分钟前
DeepSeek自学手册:《从理论(模型训练)到实践(模型应用)》|73页|附PPT下载方法
大数据·运维·人工智能·机器学习·ai·自然语言处理·知识图谱
XMYX-01 小时前
Docker-Compose 实战:解决 Zookeeper 容器挂载错误及 ulimit 配置问题
docker·zookeeper
参.商.1 小时前
【RH124】 第五章 创建、查看文本文件
linux·运维
JxHillMan2 小时前
Ubuntu 上安装 Docker
linux·ubuntu·docker
ONE_PUNCH_Ge2 小时前
Ubuntu Docker 安装
docker
心灵宝贝2 小时前
CentOS 7.2 (1511) 详解功能安装与使用指南(附安装包)
linux·运维·centos
IT 小旋风2 小时前
Linux centos 7 vsftp本地部署脚本
linux·运维·centos
云上艺旅2 小时前
K8S学习之基础四十四:k8s中部署Kibana
学习·云原生·容器·kubernetes
矛取矛求2 小时前
理解操作系统(一)冯诺依曼结构和什么是操作系统
linux·运维·服务器
浪淘沙jkp3 小时前
在线教育网站项目第四步:deepseek骗我, WSL2不能创建两个独立的Ubuntu,但我们能实现实例互访及外部访问
运维·服务器·ubuntu·wsl2·视频教育网