使用docker-compose来创建docker容器比较优雅方便,并且容易从本地移植到服务器。
但是我本地用的是windows系统,这点在开发的时候真的很蛋疼,这里只为记录一下如何在windows下使用docker-compose挂载目录。

docker-compose.yml示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# docker-compose up -d
version: "3.7"
services:
db:
image: postgres:latest
restart: "no"
environment:
POSTGRES_DB: postgres
POSTGRES_USER: postgres #postgres
POSTGRES_PASSWORD: 123456 #1234
PGDATA: /var/lib/postgresql/data
volumes:
- /D/Docker/PostgreSQL/VideoCubeApp/db:/var/lib/postgresql/data
ports:
- "5432:5432"
pgadmin:
image: dpage/pgadmin4:latest
restart: always
environment:
PGADMIN_DEFAULT_EMAIL: admin@admin.com #xxx@gmail
PGADMIN_DEFAULT_PASSWORD: 123456 #abcd
PGADMIN_LISTEN_PORT: 80
ports:
- "8080:80"
volumes:
- /D/Docker/PostgreSQL/VideoCubeApp/pgadmin:/var/lib/pgadmin
links:
- "db:pgsql-server"

volumes参数

其实这里用挂载不是很准确,实质上你的本地和容器内同时存在这些数据,并且数据是实时双向同步的。

  • volumes参数指定的就是你要挂载的本地路径(:左边)和docker容器内部路径(:右边)。
  • windows路径 D:/Docker/应该写成/D/Docker/

效果

执行如下指令开始构建并开启容器。

1
2
cd /path/to/your/docker-compose.yml # docker-compose.yml路径
docker-compose up -d

结果如下:
效果