Docker撰写命名卷:在主机上查找卷

时间:2016-12-18 13:38:54

标签: docker docker-compose volume

我有一个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)。 如何才能获得卷的真实位置?

1 个答案:

答案 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