一、动手编写一个Dockerfile
[root@docker-server ~]# mkdir /mydocker/
[root@docker-server ~]# cd /mydocker/
[root@docker-server mydocker]#[root@docker-server mydocker]# vim Dockerfile
#导入基础镜像,镜像里已经安装了python 2.7
FROM python:2.7-slim#进入到容器后,会进入的文件夹
WORKDIR /app#复制linux系统当前目录下的内容到容器的/app目录下 类似于执行docker cp
ADD . /app#在容器内部执行的命令
RUN pip install --trusted-host pypi.python.org -r requirements.txt#容器暴露80端口,监听80端口
EXPOSE 80#定义了环境变量NAME赋值world
ENV NAME World#定义了环境变量AUTHOR赋值lj
ENV AUTHOR lj#容器启动的时候执行命令 python app.py
CMD ["python","app.py"]
tips:RUN和CMD指令是不同的阶段执行的
RUN是在制作镜像的过程中执行的,可以RUN很多命令CMD是镜像制作完成,启动容器使用镜像的时候执行的,容器启动后执行的命令
二、Dockerfile常用命令及其含义
- FROM:指定基础镜像,用于构建当前镜像。
- MAINTAINER:指定镜像的维护者信息。
- RUN:在镜像中执行命令。
- CMD:指定容器启动后要执行的命令。
- ENTRYPOINT:配置容器启动时要执行的命令。
- EXPOSE:声明容器运行时的端口。
- ENV:设置环境变量。
- ADD:将文件、目录或远程文件URL复制到容器中。
- COPY:将文件或目录复制到容器中。
- VOLUME:创建一个挂载点,用于持久化数据。
- WORKDIR:设置工作目录。
- USER:指定运行容器的用户。
- ARG:定义构建时的参数。
- ONBUILD:定义触发器,用于在当前镜像被用作基础镜像时执行命令。
- STOPSIGNAL:设置停止容器时发送的信号。
- LABEL:为镜像添加元数据。
- HEALTHCHECK:设置容器的健康检查命令。