马大头 2020-01-09 17:32 采纳率: 0%
浏览 305

Docker Swarm使用secret管理密码后, Create Service时容器无法启动,并且报错

创建一个简单的secret:  
echo "admin123" | docker secret create my-pw2 -    


创建Service的命令:
docker service create --name client --secret my-pw busybox sh -c "while true; do sleep 3600; done"



inspect查看容器详情错误内容如下: 

图片说明

与这位老铁描述的情况一模一样,但是他貌似还没有解决
https://stackoverflow.com/questions/59539259/docker-container-starting-failed-if-it-has-docker-secrets#
  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-07-26 17:17
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    要解决这个问题,首先确保您已经正确安装了Docker和Docker Compose,并且正在使用正确的镜像。然后,请按照以下步骤操作:

    1. 创建并挂载Secret
    # 创建一个名为my-secret的Secret
    docker secret create my-secret
    
    # 挂载Secret到您的服务
    docker service attach --secret=my-secret
    
    1. docker-compose.yml文件中添加额外的配置以指定Secret路径
    version: '3'
    
    services:
      web:
        build: .
        ports:
          - "8080:80"
        secrets:
          - my-secret
        environment:
          SECRET_PATH: "/etc/secrets"
    
    1. 使用新的docker-compose.yml文件重新构建和运行服务
    docker-compose up -d
    

    现在,您的服务应该能够正常运行。

    注意:如果仍然遇到问题,请检查您的系统环境是否正确设置,或者尝试使用不同的秘钥类型(例如,docker secret create my-secret -type=plain)。此外,确保您的服务在运行时可以访问秘钥存储位置,因为可能需要一些时间来完成密钥的同步过程。

    希望这能帮助您解决问题!如果您有任何疑问或需要进一步的帮助,请随时提问。

    评论

报告相同问题?