【问题标题】:Docker compose named volume: find volume on host machineDocker compose命名卷:在主机上查找卷
【发布时间】:2016-12-18 13:38:53
【问题描述】:

我有一个 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 以获取指定主机上的卷位置的源时,如果我ls,我总是得到“没有这样的文件或目录”目录 (ls /var/lib/docker/volumes/test_db_data/_data: No such file or directory)。 这怎么可能获得卷的真实位置?

【问题讨论】:

    标签: docker docker-compose volume


    【解决方案1】:

    所以我得到了答案。要点是 Mac 上的 Docker仍在 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
    

    【讨论】:

    • 感谢您解决这个问题。今天花了我 4 个小时,并没有更接近于理解为什么我无法完成它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-18
    • 2016-03-10
    • 2018-01-12
    • 2016-10-08
    • 2019-07-30
    • 1970-01-01
    • 2014-10-08
    相关资源
    最近更新 更多