Docker组成命名卷:在主机上查找卷

我有一个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 ,然后执行docker inspect -f '{{ (index .Mounts 0).Source }}' ef8be254a08b为正在运行的db容器获取指定主机上卷位置的Source ,我总是得到“没有这样的文件或目录”,如果我的目录( ls /var/lib/docker/volumes/test_db_data/_data: No such file or directory )。 如何才能获得卷的真实位置?

所以我得到了答案。 主要的一点是Mac上的Docker 仍然在虚拟机内运行 。 所以系统path仍然是相对于虚拟机,而不是你的Mac。 所有的容器都存储在VM中,并位于~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/Docker.qcow2

进入VM使用:

 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