Dockerfile

Docker Image

编写完 Dockerfile 后,我们可以用命令创建一个 docker 镜像

1
docker build -t [镜像名称] [Dockerfile 所在目录]

启动 container

还需要一个 container 才能运行起来

1
docker run -p [映射到主机的哪个端口]:[容器内的哪个端口] -d [镜像名称]
  • -p:指定端口
  • -d:后台运行。想要查看终端输出的话需要到 docker desktop 里查看

用 Volume 保存 container 的数据

利用 -v 参数,把本地文件夹 ~/A 挂载到 container 里的 .../B,这样在 container 里读写 .../B 其实等于读写 ~/A.

我们先创建一个数据卷

1
docker volume create [数据卷位置]

然后在 docker run 的时候进行挂载

1
docker run -v [数据卷在本地的位置]:[数据卷在容器里的位置] -d [镜像名称]

Docker Compose

多个容器共同协作:例如数据库和前端分离。

docker-compose.yml 里用 services 进行定义

1
2
3
4
5
6
7
8
9
10
11
12
13
# docker-compose.yml
services: # 定义前端和数据库
front-end: # 前端
build: . # 镜像——从文件夹构建
ports: # 端口映射
- "80:5000"
database: # 数据库
image: "mysql" # 镜像——从其他地方拉取
environment: # 可以定义环境变量
OPENAI_API_KEY: "..."
OPENAI_API_BASE: ""
volumes: # 数据卷,等同于 -v 参数
- "~/A:.../B"

定义完毕后,使用

1
docker compose up -d

来运行所有的 container

1
docker compose down

来停止并删除所有的 container