Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
docker无需蜂群就能创造秘密_Docker_Docker Compose_Docker Secrets - Fatal编程技术网

docker无需蜂群就能创造秘密

docker无需蜂群就能创造秘密,docker,docker-compose,docker-secrets,Docker,Docker Compose,Docker Secrets,我不想在swarm中使用docker机密,我发现这是可能的。 基本上docker只是在docker容器中挂载/run/secrets,但是当我进入新构建的docker容器并执行echo$POSTGRES\u PASSWORD\u文件时,我得到了我的secret文件的路径 root@94a0f092eeb1:/# echo $POSTGRES_PASSWORD_FILE /run/secrets/db_password 这是我的docker compose.yml文件 version: '3.1

我不想在swarm中使用docker机密,我发现这是可能的。 基本上docker只是在docker容器中挂载/run/secrets,但是当我进入新构建的docker容器并执行
echo$POSTGRES\u PASSWORD\u文件
时,我得到了我的secret文件的路径

root@94a0f092eeb1:/# echo $POSTGRES_PASSWORD_FILE
/run/secrets/db_password
这是我的
docker compose.yml
文件

version: '3.1'
services:
    postgres:
        image: postgres:9.4
        container_name: postgres
        environment:
            POSTGRES_USER: "db_user"
            POSTGRES_PASSWORD_FILE: /run/secrets/db_password
            POSTGRES_DB: "my_db"
        secrets:
          - db_password
        volumes:
            - ./postgres:/var/lib/postgresql/data
        expose:
            - 5432
secrets:
   db_password:
     file: ./POSTGRES_PASSWORD.txt

我的密码设置是否正确/我的文件是否有问题

好的,所以我所要做的就是移除

volumes:
    - ./postgres:/var/lib/postgresql/data
我会想办法解决这个问题,但基本上我回答了我自己的问题

下面是一个不使用docker swarm的带有机密的
docker compose.yml
文件的工作示例:

version: '3.1'
services:
    postgres:
        image: postgres:9.4
        container_name: postgres
        environment:
            POSTGRES_USER: "db_user"
            POSTGRES_PASSWORD_FILE: /run/secrets/db_password
            POSTGRES_DB: "my_db"
        secrets:
          - db_password
        ports:
            - "8888:5432"
secrets:
   db_password:
     file: ./POSTGRES_PASSWORD

@StackOverflow:从安全角度看,不太安全。我只是想知道,如果没有docker swarmit,是否可以完成所有这一切,这也意味着你现在可以在git回购中推送docker-compose.yml,而无需在itI中输入密码。我对这个概念很感兴趣。似乎可以通过.gitignore中的
.env
文件来实现这一点。更有趣的问题是如何与您的团队共享这些机密。在我所经历的所有示例中,从未找到多个机密密钥-值对的机密文件示例。在一个秘密文件中有可能包含多个参数吗?您好!不确定,这里有什么问题?您对“echo$POSTGRES\u密码\u文件”有何期待?