需求描述

  • 正常运行的sanic应用需要进行服务器迁移,首先想到的当然是通过docker

基本步骤

编写dockerfile

这里非必须在应用根目录下进行dockerfile的建立及编写,但是为了后续方便,强烈建议

  • 在应用根目录新建Dockerfile文件
touch Dockerfile
  • 内容
# 基础镜像,这里选用python3.8
FROM python:3.8

# 维护者(非必需)
MAINTAINER <your_name> <your_email>

# 指定工作目录
WORKDIR /
# 将应用所需文件拷贝到容器中
COPY . /

# 安装必要的python三方库,建议提前生成一个依赖库列表,为了后续的构建方便
# 这里推荐使用pipreqs三方库生成,这样能够最小化使用到的库数量
RUN pip install -r requirements.txt -i https://pypi.doubanio.com/simple

# 暴露容器端口
EXPOSE <port_used>/tcp

# 执行docker run会执行的命令,按照空格进行分割
CMD ["python", "/run.py"]

构建docker镜像

docker build -t <image_name> <Dockerfile_path>
// 这里需要强调的是 <Dockerfile_path> 一定需要是一个目录,而不是dockerfile本身

其他

将镜像打包为tar文件,方便迁移

docker save -o <file_name.tar> <image_name>

将迁移的tar文件导入为镜像

docker load --input <file_name.tar>