1.什么是Dockerfile?
dockerfile是由一些列命令和参数构成的脚本,这些命令应用于基础镜像并最终创建一个新的镜像。对于开发测试运维等人员可以轻松做到统一环境。
2.Dockerfile组成部分
- 基础镜像
第一行写入基础镜像来源(这个镜像的妈妈是谁) FROM python:python3.6
- 维护者信息
镜像维护者信息(告诉别人,谁负责养他) MAINTAINER zyc
- 镜像操作指令
镜像创建后执行的命令(你想让它干啥)RUN yum install net-tools -y
- 容器启动时执行指令
容器启动后执行命令(Go Go Go)CMD [“python”,“run”,“xxx.py”]
3.常用指令
参数 | 解释 | 示例 |
---|---|---|
FROM | 指定基础镜像 | FORM python:3.6 |
MAINTAINER | 指定维护者信息,可以没有;FROM image_name:tag | MAINTAINER xxx |
RUN | 镜像创建后执行的命令,可以写多条;RUN command | RUN pip install django==2.2.2 |
CMD | 容器启动后执行的命令,可以写多条;CMD [“command”, “param1”, “param2”] | CMD [“python”, “run”, “manage.py”] |
ENV | 设置环境变量,可以写多条;ENV key value | ENV name xxx |
EXPOSE | 制定暴露端口;EXPOSE port | EXPOSE 8080 |
WORKDIR | 设置工作目录;WORKDIR path_dir | WORKDIR /home |
ADD | 将宿主机的文件复制到容器内,如果是一个压缩文件,将会在复制后自动解压;ADD source_dir/file dest_dir/file | ADD /home/demo/ /home/ |
COPY | 和ADD相似,但是有压缩文件不能解压;COPY source_dir/file dest_dir/file | COPY /home/demo/ /home/ |
4.创建一个Dockerfile
Dockerfile的名称一般就叫做Dockerfile
# 创建Dockerfile
touch Dockerfile
Dockerfile
FROM python:3.6
MAINTAINER zyc
COPY /home/django_test/ /home/
EXPOSE 8080
ENV name 123
WORKDIR /home/
RUN pip install django==2.2.2
CMD ["python","/home/django_test/manage.py","runserver","0.0.0.0:8080"]
5.通过Dockerfile构建docker镜像
# -t 为镜像标签打标签 . 表示当前路径
docker build -t django .
# 指令执行完成后
docker images
# 就可以看到镜像中存在刚刚创建的django镜像,通过docker run就可以将此镜像运行起来