Dockerfile指令
1、FROM 如果在同一Dockerfile中创建多个镜像时,可以使用多个FROM指令(每个镜像一次)
1
2
3
|
FROM <image>
或
FROM <image>:<tag>
|
2、MAINTAINER 维护者信息
1
|
MAINTAINER <name>
|
3、RUN 执行指定命令
1
2
3
|
RUN <
command
> (the
command
is run
in
a shell - `
/bin/sh
-c`)
或
RUN [
"executable"
,
"param1"
,
"param2"
... ] (
exec
form)
|
4、CMD:用于指定一个容器启动时要运行的命令,如果指定了多条命令,最有最后一条会被执行
1
2
|
CMD [
"executable"
,
"param1"
,
"param2"
] (like an
exec
, this is the preferred form)
CMD
command
param1 param2 (as a shell)
|
5、EXPOSE 暴露docker容器的端口
1
|
EXPOSE <port> [<port>...]
|
1
|
<br data-filtered=
"filtered"
>
|
6、ENV 指定一个环境变量,会被后续RUN指令使用,并在容器运行时保持
1
|
ENV <key> <value>
|
7、ADD 复制本地主机的内容到容器目标容器的目录,如果源文件是gzip/bzip2/xz等归档文件,会自动解开并添加到目的地
8、COPY 复制本地主机的内容到容器目标容器的目录
1
|
ADD <src> <dest>
|
9、ENTRYPOINT 每个Dockerfile中只能有一个ENTRYPOINT,当指定多个ENTRYPOINT时,只有最后一个生效
1
2
|
ENTRYPOINT [
"executable"
,
"param1"
,
"param2"
] (like an
exec
, the preferred form)
ENTRYPOINT
command
param1 param2 (as a shell)
|
10、VOLUME 创建一个可以从本地或其他容器挂载的挂载点
1
|
VOLUME [
"<mountpoint>"
]
|
11、USER 使用指定用户运行命令
1
2
3
4
5
|
# 指定memcached的运行用户
ENTRYPOINT [
"memcached"
]
USER daemon
或
ENTRYPOINT [
"memcached"
,
"-u"
,
"daemon"
]
|
12、WORKDIR 切换工作目录
1
|
WORKDIR
/path/to/workdir
|
13、ONBUILD
1
2
|
ONBUILD <Dockerfile关键字>
ONBUILD 指定的命令在构建镜像时并不执行,而是在它的子镜像中执行。
|
创建镜像:
docker build [ 选项 ] dockerfile路径
sudo docker build -t centos6-ssh .
笼统的收集了Dockerfile的指令
本文转自 yanconggod 51CTO博客,原文链接:http://blog.51cto.com/yanconggod/1883346