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目录( ls /var/lib/docker/volumes/test_db_data/_data: No such file or directory )。 如何才能获得卷的真实位置?


所以我得到了答案。 重点是Mac上的Docker 仍在虚拟机内部运行 。 所以系统路径仍然是相对于虚拟机,而不是你的Mac。 所有容器都存储在虚拟机中,并位于~/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
链接地址: http://www.djcxy.com/p/94261.html

上一篇: Docker compose named volume: find volume on host machine

下一篇: Why don't property initializers call a custom setter?