【注意】最后更新于 December 2, 2019,文中内容可能已过时,请谨慎使用。
这里有一个使用 wordpress 的 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
29
|
version: '3'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: gaofeifiy
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
ports:
- 33060:3306
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8080:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
|
其中有一点奇怪的地方就是在db
的数据挂载当中,是这么写的:
1
2
3
4
5
6
7
8
9
|
...
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
....
volumes:
db_data:
|
这是docker-compose
version2 起开始的新语法,目的就是方便多个服务之间公用同一个卷
这种写法就是声明一个命名卷, 通过docker volume ls
可以列出来宿主机上的所有挂载的卷,而且这些卷不会因为容器被删除而删除,为的就是方便数据和服务分离
可以通过命令docker inspect wordpress_db_data
来查看卷的配置,这里wordpress_db_data
就是我们刚才声明的那个卷的名字
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
➜ wordpress git:(master) ✗ docker inspect wordpress_db_data
[
{
"CreatedAt": "2018-02-13T04:29:29Z",
"Driver": "local",
"Labels": {
"com.docker.compose.project": "wordpress",
"com.docker.compose.volume": "db_data"
},
"Mountpoint": "/var/lib/docker/volumes/wordpress_db_data/_data",
"Name": "wordpress_db_data",
"Options": {},
"Scope": "local"
}
]
|
不过他的mountpoint
的路径并不是宿主机上的路径,而依然是属于docker
的路径,在macOS
系统当中可以执行
1
2
3
|
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
# ls -ltrh /var/lib/docker/volumes
|
在 macOS
中并不能看到实体文件,而是进入linuxkit
中,所有的资源也是在那里,这在win
和mac
会出现,在 linuxOS
中就是正常的/var/lib/docker
路径
可以查看卷的列表, 参考资料1 参考资料2
清除本地的卷可以执行docker volume prune
官方文档
文章作者
GPF
上次更新
2019-12-02
(521dbfe)