目录
一、基本指令
1、FROM指令
2、MAINTAINER指令
3、RUN指令
4、CMD指令
5、ENTRYPOINT指令
6、ENV指令
7、COPY指令
8、EXPOSE指令
9、LABEL指令
10、WORKDIR指令
二、Shell格式和Exec格式的区别
1、Shell格式
2、Exec格式
三、CMD指令详解
步骤一、定义一个Dockerfile
步骤二、构建镜像image
步骤三、演示正常创建容器
步骤四、演示docker run指定了其他命令,CMD命令会被忽略
四、Dockerfile实战
步骤一、创建路径
步骤二、创建app.py文件
步骤三、创建Dockerfile
步骤四、创建镜像image
步骤五、使用新建的image运行容器
注意:
名称必须为Dockerfile
需要保证路径下只有一个Dockerfile文件
一、基本指令
1、FROM指令
- 设置继承镜像
FROM centos:1.0
若本地有标签为centos:1.0的镜像,则直接使用,否则去镜像仓库下载
2、MAINTAINER指令
- 提供作者信息
MAINTAINER BenjunLu (269793494@qq.com)
3、RUN指令
- 执行命令并创建新的Image Layer
RUN yum -y update && \
yum install -y net-tools && \
yum install -y wget
4、CMD指令
- 设置容器启动后默认执行的命令和参数
- 如果docker run指定了其他命令,CMD命令会被忽略
- 如果定义了多个CMD,只有最后一个会执行
CMD [ "/bin/echo" , "hello docker" ]
5、ENTRYPOINT指令
- 设置容器启动时运行的命令
- 让程序以应用程序或者服务的形式运行
- 不会被忽略,一定会执行
ENTRYPOINT [ "/bin/bash" , "-c" , "echo hello docker" ]
6、ENV指令
- 设置环境变量
ENV name Docker
设置name变量的值为Docker
7、COPY指令
- 复制本地文件到image
COPY app.py /app/
注意:路径最后必须带“/”,不然会复制成一个文件
8、EXPOSE指令
- 暴露容器端口
EXPOSE 27017
暴露容器端口为27017
9、LABEL指令
- 设置标签
10、WORKDIR指令
- 设置容器启动后的工作目录
WORKDIR /app