加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

如何在Windows机器上访问docker数据卷?

发布时间:2020-12-14 04:00:44 所属栏目:Windows 来源:网络整理
导读:我有这样的docker-compose.yml: version: '3'services: mysql: image: mysql volumes: - data:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=$ROOT_PASSWORDvolumes: data: 我的挂载点看起来像:/ var / lib / docker / volumes / some_app / _data,
我有这样的docker-compose.yml:

version: '3'
services:
  mysql:
    image: mysql
    volumes:
      - data:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=$ROOT_PASSWORD

volumes:
  data:

我的挂载点看起来像:/ var / lib / docker / volumes / some_app / _data,我想从该挂载点访问数据,我不知道如何在Windows机器上执行此操作.也许我可以创建一些额外的容器,可以将数据从docker虚拟机传递到我的目录?

当我正在安装这样的文件夹时:

volumes:
  - ./data:/var/lib/mysql

使用我的本地目录 – 由于权限问题我没有成功.并读到“正确的方式”正在使用docker卷.

UPD:MySQL容器就是一个例子.我想对我的代码库使用这种行为并使用docker foe本地开发.

解决方法

对于Windows下的Linux容器,docker实际上在Linux虚拟机上运行,??因此您的命名卷是该VM中本地目录到容器中目录的映射.

所以你得到的是/ var / lib / docker / volumes / some_app / _data是该VM内的一个目录.要检查它,您可以:

docker run --rm -it -v /:/vm-root alpine:edge ls -l /vm-root/var/lib/docker/volumes/some_app/_data
total 188476
-rw-r-----    1 999      ping            56 Jun  4 04:49 auto.cnf
-rw-------    1 999      ping          1675 Jun  4 04:49 ca-key.pem
-rw-r--r--    1 999      ping          1074 Jun  4 04:49 ca.pem
-rw-r--r--    1 999      ping          1078 Jun  4 04:49 client-cert.pem
-rw-------    1 999      ping          1679 Jun  4 04:49 client-key.pem
-rw-r-----    1 999      ping          1321 Jun  4 04:50 ib_buffer_pool
-rw-r-----    1 999      ping      50331648 Jun  4 04:50 ib_logfile0
-rw-r-----    1 999      ping      50331648 Jun  4 04:49 ib_logfile1
-rw-r-----    1 999      ping      79691776 Jun  4 04:50 ibdata1
-rw-r-----    1 999      ping      12582912 Jun  4 04:50 ibtmp1
drwxr-x---    2 999      ping          4096 Jun  4 04:49 mysql
drwxr-x---    2 999      ping          4096 Jun  4 04:49 performance_schema
-rw-------    1 999      ping          1679 Jun  4 04:49 private_key.pem
-rw-r--r--    1 999      ping           451 Jun  4 04:49 public_key.pem
-rw-r--r--    1 999      ping          1078 Jun  4 04:49 server-cert.pem
-rw-------    1 999      ping          1675 Jun  4 04:49 server-key.pem
drwxr-x---    2 999      ping         12288 Jun  4 04:49 sys

那是运行一个辅助容器,它将该VM的孔根文件系统安装到容器dir / vm-root中.

要获取一些文件在后台运行带有一些命令的容器(在我的情况下是tail -f / dev / null),那么你可以使用docker cp:

docker run --name volume-holder -d -it -v /:/vm-root alpine:edge tail -f /dev/null
docker cp volume-holder:/vm-root/var/lib/docker/volumes/volumes_data/_data/public_key.pem .

如果您想要一个透明的SSH到该VM,从2017年6月开始,它似乎尚不支持. Here码头工作人员说.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读