我有一个docker-compose.yml:
version: '2'
services:
db:
image: mysql:5.7
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: wordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
ports:
- "8000:80"
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: wordpress
volumes:
db_data:
当我运行此docker-compose up -d
然后为正在运行的db容器执行docker inspect -f '{{ (index .Mounts 0).Source }}' ef8be254a08b
以获取指定主机上的卷位置的Source时,我总是得到“No such file or directory”if if我ls
目录(ls /var/lib/docker/volumes/test_db_data/_data: No such file or directory
)。
如何才能获得卷的真实位置?
答案 0 :(得分:6)
所以我得到了答案。重点是Mac上的Docker 仍然在VM中运行。因此,系统路径仍然相对于VM而不是Mac。所有容器都存储在VM中,位于~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2
进入虚拟机使用:
screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty
然后你可以看到docker inspect {container_id}
中给出的Source文件夹的内容:
ls /var/lib/docker/volumes/test_db_data/_data