Docker的基本概念及其安装方式,详见笔记🗒️ ⋮ Docker

前言

0️⃣我们先假设一个情景:

  • 你的win项目此时要用docker打包;
  • 你的设备只允许你在vm中使用docker;

1️⃣那么你需要做的就是以下几步(以VirtualBox+Ubuntu为例):

  1. 把你的win项目代码放进ubuntu
  2. 在ubuntu中构建docker镜像 👈基于Dockerfile
  3. 打包出来的.tar即为所求

Dockerfile是什么

Dockerfile是一个文本文件,包含构建Docker镜像的所有指令,指导Docekr构建镜像。

定义好后:用docker build .就可以把Dockerfile变成一个可运行的镜像力。

如何编写Dockerfile

首先明确Dockerfile定义了什么,我们才能知道到底要写些什么:

  • 基础镜像(FROM)
  • 工作目录(WORKDIR)
  • 依赖安装(RUN)
  • 拷贝代码(COPY)
  • ……
  • 启动命令(CMD)

那么按照此顺序编写👇

1. 基础镜像

你将要构建的镜像,以此基础镜像为起点

FROM 

2. 工作目录

设置接下来命令执行的工作路径

WORKDIR /app

3. 依赖安装

你的项目所需依赖的安装,无需多言

  1. 复制依赖定义文件
COPY requirements.txt ./
  1. 安装依赖
RUN pip install --no-cache-dir -r requirements.txt

4. 拷贝代码

把你的本地项目代码拷贝到镜像

COPY . .

5. 设置环境变量(可选)

ENV PYTHONUNBUFFERED=1

6. 暴露端口(如果项目有web端口)

EXPOSE 7860

7. 启动命令

设置容器启动时默认执行的命令。这里以python -m cli.main命令运行的项目为例:

CMD ["python","cli/main.py"]

合并第五步的日志查看,也可写为:

CMD ["python", "-u", "app.py"]

如何使用Dockerfile

  1. 在你的项目根目录新建Dockerfile(无扩展名)文件。
  2. 写好Dockerfile。

在vm中构建镜像:

  1. vm执行Dockerfile,构建镜像:

    docker build -t my-app:latest .

docker build -t <镜像名:版本号> <项目目录>
  1. 构建成功后,执行:

    docker run -it --rm -p 7860:7860 my-app:latest

docker run -it --rm -p <主机端口:容器端口> <镜像名:版本号>

参考链接

Dockerfile 教程 - 镜像构建文件编写指南 | Docker 中文文档