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中的驱动器共享到li​​nux容器才能工作。希望这能帮助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容器学习梳理--web管理工具

Docker之可视化工具Docker UI

Docker Swarm介绍

新特性初探:Docker for Mac喜迎Kuberntes支持能力

支持HTTP2的cURL——基于Alpine的最小化Docker镜像

Java 8 终于支持 Docker !