目录
一 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 ##测试