我们快速的使用Dockerfile来基于ubuntu创建一个定制化的镜像:nginx
[Python]
纯文本查看 复制代码
1
2
3
4
5
|
#创建Dockerfile专用目录
:~$ mkdir .
/
docker
/
images
/
nginx
-
p
:~$ cd docker
/
images
/
nginx
/
#创建Dockerfile文件
:~
/
docker
/
images
/
nginx$ vim Dockerfile
|
dockerfile内容:
[Python]
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
|
# 构建一个基于ubuntu的docker定制镜像
# 基础镜像
FROM ubuntu
# 镜像作者
MAINTAINER panda [email]kstwoak47@
163.com
[
/
email]
# 执行命令
RUN mkdir hello
RUN mkdir world
RUN sed
-
i
's/archive.ubuntu.com/mirrors.ustc.edu.cn/g'
/
etc
/
apt
/
sources.
list
RUN sed
-
i
's/security.ubuntu.com/mirrors.ustc.edu.cn/g'
/
etc
/
apt
/
sources.
list
RUN apt
-
get update
RUN apt
-
get install nginx
-
y
# 对外端口
EXPOSE
80
|
进行构建操作:
[Python]
纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
|
#构建镜像
:~
/
docker
/
images
/
nginx$ docker build
-
t ubuntu
-
nginx:v0.
1
.
#查看新生成镜像
:~
/
docker
/
images
/
nginx$ docker images
REPOSITORY TAG IMAGE
ID
CREATED SIZE
ubuntu
-
nginx v0.
1
a853de1b8be4
9
seconds ago
208MB
nginx latest e548f1a579cf
6
days ago
109MB
ubuntu latest
0458a4468cbc
4
weeks ago
112MB
#查看构建历史
:~
/
docker
/
images
/
nginx$ docker history a853de1b8be4
IMAGE CREATED CREATED BY SIZE COMMENT
#镜像 创建时间 依赖命令 大小 评论
a853de1b8be4
41
seconds ago
/
bin
/
sh
-
c
#(nop) EXPOSE 80 0B
925825b680fd
42
seconds ago
/
bin
/
sh
-
c apt
-
get install nginx
-
y
56.5MB
4c57d6c99603
About a minute ago
/
bin
/
sh
-
c apt
-
get update
40MB
b6d030a0d123 About a minute ago
/
bin
/
sh
-
c sed
-
i's
/
security.ubuntu.com
/
mir…
2.77kB
3357bf8069ca
About a minute ago
/
bin
/
sh
-
c sed
-
i's
/
archive.ubuntu.com
/
mirr…
2.77kB
7bfb90c1e20d
About a minute ago
/
bin
/
sh
-
c mkdir world
0B
972d6ab76d01
About a minute ago
/
bin
/
sh
-
c mkdir hello
0B
a76394bfad01 About a minute ago
/
bin
/
sh
-
c
#(nop) MAINTAINER panda kstwoak4… 0B
#注意:
因为容器没有启动命令,所以肯定访问不了
|
Dockerfile构建过程: 从基础镜像1运行一个容器A
遇到一条Dockerfile指令,都对容器A做一次修改操作
执行完毕一条命令,提交生成一个新镜像2
再基于新的镜像2运行一个容器B
遇到一条Dockerfile指令,都对容器B做一次修改操作
执行完毕一条命令,提交生成一个新镜像3
…
**构建过程镜像介绍
构建过程中,创建了很多镜像,这些中间镜像,我们可以直接使用来启动容器,通过查看容器效果,从侧面能看到我们每次构建的效果。提供了镜像调试的能力
更多技术资讯可关注:gzitcast