Docker的基本概念及其安装方式,详见
笔记🗒️ ⋮ Docker
前言
0️⃣我们先假设一个情景:
- 你的win项目此时要用docker打包;
- 你的设备只允许你在vm中使用docker;
1️⃣那么你需要做的就是以下几步(以VirtualBox+Ubuntu为例):
- 把你的win项目代码放进ubuntu
- 在ubuntu中构建docker镜像 👈基于Dockerfile
- 打包出来的
.tar即为所求
Dockerfile是什么
Dockerfile是一个文本文件,包含构建Docker镜像的所有指令,指导Docekr构建镜像。
定义好后:用docker build .就可以把Dockerfile变成一个可运行的镜像力。
如何编写Dockerfile
首先明确Dockerfile定义了什么,我们才能知道到底要写些什么:
- 基础镜像(FROM)
- 工作目录(WORKDIR)
- 依赖安装(RUN)
- 拷贝代码(COPY)
- ……
- 启动命令(CMD)
那么按照此顺序编写👇
1. 基础镜像
你将要构建的镜像,以此基础镜像为起点
FROM
2. 工作目录
设置接下来命令执行的工作路径
WORKDIR /app
3. 依赖安装
你的项目所需依赖的安装,无需多言
- 复制依赖定义文件
COPY requirements.txt ./
- 安装依赖
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
- 在你的项目根目录新建
Dockerfile(无扩展名)文件。 - 写好Dockerfile。
在vm中构建镜像:
- vm执行Dockerfile,构建镜像:
docker build -t my-app:latest .
docker build -t <镜像名:版本号> <项目目录>
- 构建成功后,执行:
docker run -it --rm -p 7860:7860 my-app:latest
docker run -it --rm -p <主机端口:容器端口> <镜像名:版本号>
