目录
一、结构
(一)FROM
1. 用法
2. 写法
3. 注意
(二)MAINTAINER
1. 作用
2. 写法
(三)RUN
1. 作用
(四)WORKDIR
1. 作用
2. 写法
(五)EXPOSE
1. 作用
2. 写法
(六)CMD
1. 作用
二、完整示例
一、结构
(一)FROM
1. 用法
设置基础镜像信息。
2. 写法
FROM <image>
FROM <image>:<tag>
FROM <image>@<digest>
完整示例:其中,tadeorubio/pyodbc-msodbcsql17:latest 是指最新版本的python环境镜像。
FROM tadeorubio/pyodbc-msodbcsql17:latest
3. 注意
第一行非注释内容必须是FROM指令(FROM是指定镜像的,是一个开始命令)。
其中,tag 或 digest 是可选的,若不设置这两值,则直接使用latest版本的基础镜像。
(二)MAINTAINER
1. 作用
设置维护者信息。
2. 写法
MAINTAINER Luobogan
(三)RUN
1. 作用
构建镜像时的操作指令。
(四)WORKDIR
1. 作用
进入工作目录。
2. 写法
类似于cd命令。
WORKDIR /test_dir/mybook
(五)EXPOSE
1. 作用
docker 暴露给外界交互的端口。
2. 写法
EXPOSE 8006
(六)CMD
1. 作用
容器启动时的执行指令。
二、完整示例
# 第一行必须是设置基础镜像# 基础镜像(针对 python3.8 环境)# 其中 tadeorubio/pyodbc-msodbcsql17:latest 是指最新版本的链接SQL的python环境镜像(如果不指定版本,则会默认用最新版的环境)FROM tadeorubio/pyodbc-msodbcsql17:latest# 维护者信息MAINTAINER docker_user# 设置环境变量(针对python)ENV PYTHONUNBUFFERED 1ENV LANG C.UTF-8ENV DEBIAN_FRONTEND=noninteractiveENV PORT=8006# 新增容器工作目录(在容器内/test_dir/下创建 mybook 文件夹,-p是在路径目录不存在时自动创建它)RUN mkdir -p /test_dir/mybook# 将当前目录文件都加到容器工作目录中(. 表示当前宿主机目录)ADD . /test_dir/mybook# 设置工作目录(进入容器时的默认目录)WORKDIR /test_dir/mybookRUN pip --proxy=http://10.XX.XXX.XXX:8080 install --upgrade pip==24.1RUN pip --proxy=http://10.XX.XXX.XXX:8080 install uwsgi# 利用 pip 安装依赖RUN pip --proxy=http://10.XX.XXX.XXX:8080 install -r requirements.txt# 和外界交互的端口EXPOSE 8006