理论+实验 详解Docker镜像的创建

一 Docker镜像

1.1Docker镜像的分层

在这里插入图片描述

1.2 Docker镜像的创建

1.2.1 Docker镜像

●应用发布的标准格式
●支撑一个Docker容器的运行

1.2.2 Docker镜像的创建方法

●基于已有镜像创建
●基于本地模板创建
●基于Dockerfile创建

二 Docker镜像的创建方法

2.1 基于已有镜像创建

[root@localhost overlay2]# docker create -it centos:7 /bin/bash		##创建容器
e1eb0990df20ea9f7ff9e769f91e24d409709685884130d342e5f90a50599ce5
[root@localhost overlay2]# docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
e1eb0990df20        centos:7            "/bin/bash"         57 seconds ago      Created                                 quirky_curie
[root@localhost overlay2]# docker commit -m "new" -a "cwj" e1eb0990df20 cwj:centos7	##-m:说明信息;-a:作者信息;-p:生成过程中停止容器的运行
sha256:4c04ba7d04c41eae64b3d970f32a6de1bee28a6849d7dc6bb384c253130f241e
[root@localhost overlay2]# docker images | grep cwj
cwj                   centos7             4c04ba7d04c4        16 seconds ago      203MB

2.2 基于本地模板创建

[root@localhost opt]# wget http://download.openvz.org/template/precreated/debian-7.0-x86-minimal.tar.gz
[root@localhost opt]# docker images | grep new
##压缩包源放在overlay2目录下会报错Error response from daemon: Error processing tar file(exit status 1): unexpected EOF
[root@localhost opt]# ll
总用量 637844
drwxr-xr-x  2 root root        56 11月  9 20:18 apache
drwx--x--x  4 root root        28 11月  9 17:36 containerd
-rw-r--r--  1 root root  88436521 11月  9 17:32 debian-7.0-x86-minimal.tar.gz
-rw-------  1 root root 427646464 11月 10 08:59 httpd
-rw-------  1 root root 137067008 11月  9 19:04 nginx
drwxr-xr-x. 2 root root         6 3月  26 2015 rh
[root@localhost opt]# cat debian-7.0-x86-minimal.tar.gz | docker import - daoke:new
sha256:2ff8cdac6ae3f3e15b181870dabcf789f4117a53619511cc673d4f2565f612a4

2.3 基于Dockerfile创建

[root@localhost overlay2]# cd /opt/
[root@localhost opt]# mkdir apache
[root@localhost opt]# cd apache/
[root@localhost apache]# vim Dockerfile
#基于的基础镜像
FROM centos:7
#维护镜像的用户信息
MAINTAINER cwj
#镜像操作指令安装apache软件
RUN yum -y update
RUN yum -y install httpd
#开启80端口
EXPOSE 80
#复制网站首页文件
ADD index.html /var/www/html/index.html
#将执行脚本复制到镜像中
ADD run.sh /run.sh
RUN chmod 755 /run.sh
#启动容器时执行脚本
CMD ["/run.sh"]

[root@localhost apache]# vim run.sh
#!/bin/bash
rm -rf /run/httpd/*				//清除httpd缓存
exec /usr/sbin/apachectl -D FOREGROUND	//启动apache服务

[root@localhost apache]# vim index.html
<h>web test<!h>

[root@localhost apache]# docker build -t httpd:centos .			##生成镜像(注意别忘了末尾有“.”)

[root@localhost apache]# docker run -d -p 1216:80 httpd:centos 		##新镜像运行容器
98dd203f1d3b7e2751d4b4569d671f036e1db2a4fde1ebd51a702b69f76716a6

http://20.0.0.101:1216		##测试
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值