Docker之构建镜像的两种方式(Dockerfile、commit)

1.利用commit构建镜像

(1)利用commit封装镜像

commit构建镜像的步骤

运行容器
修改容器
将容器保存为新的镜像

(2)利用ubuntu镜像建立容器vm1,,对它进行修改
在这里插入图片描述
(3)使用commit命令进行封装

在这里插入图片描述在这里插入图片描述在这里插入图片描述

(4)使用新封装的镜像构建容器,保存了之前操作的痕迹

在这里插入图片描述

2.编写Dockerfile构建镜像

准备编写DockFile实现安装httpd服务

(1)删除前面构建的镜像和容器
docker rmi ubuntu:v1

(2)拉取rhel7镜像源

在这里插入图片描述(3)编写Dockerfile
在这里插入图片描述在这里插入图片描述

FROM rhel7      # 源镜像是rhel7,最好将名为rhel7的镜像放在本地
COPY yum.repo /etc/yum.repo.d		#将本地的yum源文件复制到容器中的/etc/yum.repo.d/目录下
RUN  rpmdb --rebuilddb && yum install -y httpd在容器中安装httpd服务
# 执行命令安装httpd并清除yum缓存
# rpmdb 命令用于初始化和重建rpm数据库
# --rebuilddb:从已安装的包头文件,反向重建RPM数据库
EXPOSE 80    # 定义端口为80
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
# 打开apach服务
# -D 是全局文件/etc/sysconfig/httpd中的打开参数

(4)封装镜像,并测试能否正常使用

[root@server1 docker]# docker build  -t rhel7:v1 .		##注意命令后有一个点,表示当前目录下

在这里插入图片描述在这里插入图片描述
(5)基于刚才封装的镜像运行一个容器

在这里插入图片描述
(6) 书写httpd服务默认发布文件,导入容器内部

在这里插入图片描述访问测试
可以看出刚才构建的镜像是好的,基于镜像运行起来的容器也是好的

在这里插入图片描述在这里插入图片描述
(7)构建镜像,并添加数据卷挂载位置(VOLUME [“var/www/html”])
在这里插入图片描述
Build构建镜像
在这里插入图片描述

[root@server1 docker]# docker build -t rhel7:v2 .
Sending build context to Docker daemon  4.096kB
Step 1/6 : FROM rhel7
 ---> 0a3eb3fde7fd
Step 2/6 : COPY yum.repo /etc/yum.repos.d/
 ---> Using cache												##使用了缓存
 ---> db0ce1a7fb77
Step 3/6 : RUN rpmdb --rebuilddb  && yum install -y httpd
 ---> Using cache												##使用了缓存
 ---> ba007361f210
Step 4/6 : EXPOSE 80
 ---> Using cache												##使用了缓存
 ---> 554977c12e37
Step 5/6 : VOLUME ["/var/www/html"]
 ---> Running in 4fbea9452763
Removing intermediate container 4fbea9452763
 ---> 7094cf717b4c
Step 6/6 : CMD ["/usr/sbin/httpd","-D","FOREGROUND"]
 ---> Running in 0efba909bae5
Removing intermediate container 0efba909bae5
 ---> 6d1e0dbaa3ff
Successfully built 6d1e0dbaa3ff
Successfully tagged rhel7:v2

这就要提到一个重要点:镜像的缓存特性
此时可以看到 rhel7:v2比 rhel7:v1多了一层

在这里插入图片描述

生成容器,并测试是否可以正常访问
在这里插入图片描述在这里插入图片描述

(8)直接在数据卷中编写发布文件

重新生成容器

在这里插入图片描述查看httpd3的数据卷位置

在这里插入图片描述进入数据卷位置并编写发布文件并测试

在这里插入图片描述
测试

在这里插入图片描述

发布了260 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/yrx420909/article/details/105362191