Docker 不支持使用 Docker 工具箱在 Windows 家庭系统上存储机密
Posted
技术标签:
【中文标题】Docker 不支持使用 Docker 工具箱在 Windows 家庭系统上存储机密【英文标题】:Docker does not support storing secrets on Windows home system using Docker toolbox 【发布时间】:2020-08-30 14:35:46 【问题描述】:使用 Windows 10 Home 上的 Docker 工具箱,Docker 版本 19.03,我们创建了一个 docker-compose.yml 并添加了一个 JSON 格式的机密文件,它在 Mac 系统上运行良好,但它是无法在 Windows 10 Home 中运行。
运行docker-compose up
后出错:
ERROR: for orthancserver Cannot create container for service orthanc: invalid mount config for type
"bind": invalid mount path: 'C:/Users/ABC/Desktop/Project/orthanc.json' mount path must be absolute
docker-compose.yml:
version: "3.7"
services:
orthanc:
image: jodogne/orthanc-plugins:1.6.1
command: /run/secrets/
container_name: orthancserver
restart: always
ports:
- "4242:4242"
- "8042:8042"
networks:
- mynetwork
volumes:
- /tmp/orthanc-db/:/var/lib/orthanc/db/
secrets:
- orthanc.json
dcserver:
build: ./dc_node_server
depends_on:
- orthanc
container_name: dcserver
restart: always
ports:
- "5001:5001"
networks:
- mynetwork
volumes:
- localdb:/database
volumes:
localdb:
external: true
networks:
mynetwork:
external: true
secrets:
orthanc.json:
file: orthanc.json
orthanc.json 文件保存在 docker-compose.yml
旁边【问题讨论】:
我猜你正在使用linux容器,所以你需要将windows中的驱动器共享到linux容器才能工作。希望这能帮助docs.docker.com/docker-for-windows/#file-sharing 见github.com/docker/compose/issues/4829Question: Are docker-compose secrets supported on Windows Containers?
@Schwarz54,是的,你是对的,在 Windows 工具箱中的 VM 上使用 Linux 容器。我已经尝试过这个共享目录,但仍然不适用于秘密。但是批量添加效果很好,请参阅我的其他问题,更新 docker-compose.yml ***.com/q/61905204/2034750
@RajSrujanJalem,它仍然没有回答,它适用于旧版本的 docker-compose。所以寻找最新版本的 docker-compose
【参考方案1】:
使用 docker 工具箱找到了 Windows 10 家庭版的替代解决方案。正如@Schwarz54 所评论的那样,文件共享与 Dockerized Orthanc 服务器的 docker volume 配合得很好。
添加共享文件夹:
-
打开 Oracle VM 管理器
进入默认虚拟机设置
点击共享文件夹
将 C:\ 驱动器添加到列表中
编辑 docker-compose.yml 以通过卷将配置文件传输到 Orthanc
version: "3.7"
services:
orthanc:
image: jodogne/orthanc-plugins:1.6.1
command: /run/secrets/
container_name: orthancserver
restart: always
ports:
- "4242:4242"
- "8042:8042"
networks:
- mynetwork
volumes:
- /tmp/orthanc-db/:/var/lib/orthanc/db/
- /c/Users/ABCUser/Desktop/Project/orthanc.json:/etc/orthanc/orthanc.json:ro
dcserver:
build: ./dc_node_server
depends_on:
- orthanc
container_name: dcserver
restart: always
ports:
- "5001:5001"
networks:
- mynetwork
volumes:
- localdb:/database
volumes:
localdb:
external: true
networks:
mynetwork:
external: true
【讨论】:
以上是关于Docker 不支持使用 Docker 工具箱在 Windows 家庭系统上存储机密的主要内容,如果未能解决你的问题,请参考以下文章
新特性初探:Docker for Mac喜迎Kuberntes支持能力