1.预先写好DockerFile※
# 使用官方Python运行时作为父镜像
FROM python:3.6.8-alpine
# 将工作目录设置为/app
WORKDIR /app
# 将当前目录内容复制到位于/app中的容器中
COPY . /app
# 升级pip到最新版本(可选,有时候不更新会出现下载库失败)
RUN pip install --upgrade pip
# 设置时区,alpine镜像默认使用UTC时区,没有其他时区的包
RUN apk update && apk add tzdata
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" > /etc/timezone
# 安装requirements.txt中指定的任何所需包
RUN pip install --no-cache-dir -r requirements.txt
# 允许容器作为可执行文件运行
CMD ["python", "./app.py"]2.将app.py和DockerFile放在同一个目录※
3.制作镜像包※
docker build [--no-cache] -t <镜像名> .
# --no-cache:可选项,不带这个参数,打包会快一些
# <镜像名>:打包后镜像的名字4.运行镜像※
docker run -d \ # -d表示脱离附加,可以在后台运行
--name <容器名> \ # 可选项,容器运行的名字
-v 宿主路径:/容器路径 \ # 用于将容器卷映射到主机,否则会运行失败,映射是单向的,宿主机覆盖容器,注意不要把容器内的文件覆盖了
-v /etc/localtime:/etc/localtime \
-v /etc/timezone:/etc/timezone \ # 如果在Dockerfile设置时区,可以在运行的时候加上这两行,将本机时区映射到容器
--restart unless-stopped \ # 崩溃后自动重启容器
镜像名:镜像tag # 没有tag的话。默认是latest5. 运行失败排查※
查看日志
docker logs 容器名运行不起来的情况下查看容器内目录
docker run --rm -it 镜像名 ls /容器内目录名