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的指令