dockerfile指令

1.FROM

1
2
#指定所创建镜像的基础镜像,如果本地不存在,则默认去镜像仓库下载指定镜像  
FROM <image>:<tag>

2.MAINTAINER

1
2
#指定维护者信息  
MAINTAINER [xxx@xxx.com](mailto:xxx@xxx.com)

3.RUN

1
2
3
4
#镜像制作过程中,在可写层执行指定命令  
RUN <command>
#默认在 shell 终端中运行命令,即 /bin/sh -c;
#RUN ["executable","param1","param2"] 会被解析成Json数组,因此必须要用"",可指定使用其他终端类型,如 RUN ["/bin/bash","-c","echo helloworld"]

4.CMD

1
2
3
4
5
6
7
#指定启动容器时默认执行的命令,一般用于执行服务启动脚本。每个 Dockerfile 只能有一条 CMD 指令,如果指定了多条,只有最后一条会生效,并且 docker run 接的命令会覆盖掉 CMD 指令的内容。支持三种格式:  
CMD ["executable","param1","param2"]
#使用 exec 执行
CMD command param1 param2
#在 /bin/sh 中执行,提供给需要交互的应用
CMD ["param1","param2"]
#提供给 ENTRYPOINT 的默认参数

docker常用容器管理命令

1.创建容器

1
2
3
4
5
6
7
docker create [OPTIONS] CONTAINER_NAME[:TAG]

options:

-t #将容器的标准输出绑定到一个伪终端

-i #交互

2.启动容器

1
docker start CONTAINER_ID

3.运行容器(相当于docker create + docker start)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
docker run [OPTIONS] NAME[:TAG]

options:

-d #在后台运行容器

-t #将容器的标准输出绑定到一个伪终端

-i #交互

-c,--cpu-shares [=0] #调整容器使用 CPU 的权重

-m,--memory [=MEMORY] #调整容器使用 Memory 的大小

#执行 docker run,Docker 服务端在后台运行的操作如下:

#1.检查本地是否存在指定的镜像,不存在就从公有仓库下载;

#2.利用镜像创建并启动一个容器;

#3.分配一个文件系统,并在只读的镜像层外面挂在一层可读层;

#4.从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中;

#5.从地址池配置一个IP地址给容器;

#6.执行用户指定的应用程序;

#7.执行完毕后容器被终止。

:D 一言句子获取中...