使用Dockerfile 能够构建一个自定义镜像。通常情况下是将自己的应用打包成镜像,在容器中使用。
Dockerfile 命令
命令 |
作用 |
FROM |
表示当前镜像是基于那个镜像 |
MAINTAINER |
镜像的维护者和邮箱 |
RUN |
构建镜像的时候需要运行的命令 |
EXPOSE |
容器内对外暴露的端口 |
WORKDIR |
指定创建容器后默认进入容器的工作目录 |
ENV |
用来构建镜像过程中设置的环境变量 key=value |
ADD |
将宿主机下的文件拷贝到容器中,且会自动处理url和压缩包 |
COPY |
类似于ADD,将从构建的Dockerfile目录中复制镜像的目录中 |
VOLUME |
容器数据卷 |
CMD |
制定一个容器运行的命令,如果有多个命令,只执行最后一个。会被docker run 后面的命令替代 |
ENTRYPOINT |
指定一个容器启动时要运行的命令和参数,和CMD一样 |
1、FROM 命令语法
1 2 3
| FROM <image> FROM <image>[:<tag>]
|
2、RUN 命令
1 2 3 4
| RUN echo hello word
RUN ["yum","install","-y","vim"]
|
3、EXPOSR 命令
4、WORKDIR 命令
1 2 3 4 5 6 7 8 9
|
WORKDIR /opt/myserver WORKDIR /aaa WORKDIR bb
|
5、ADD 命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
ADD bb.txt /aaa/bb ADD https://origin.chaizz.com/497261de494511ec9d7c5254006b8f1d.png /aaa/bb
ADD apache-tomcat-8.5.73-src.tar.gz /aaa/bb
RUN mv apache-tomcat-8.5.73-src tomcat
WORKDIR tomcat
|
6、COPY 命令
7、volume 目录
1 2 3
| VOLUME /aaa/bb/tomcat/webapps
|
8、ENV 命令
9、ENTRYPOINT 命令
1 2 3 4
| ENTRYPOINT ls $BASE_DIR/tomcat
ENTRYPOINT ["ls", "$BASE_DIR/tomcat"]
|
10、CMD 命令
1 2 3 4 5 6 7
|
CMD ls $BASR_DIR
CMD ["ls", "$BASR_DIR"]
|