Portainer -如何在docker-compose.yml中指定SSL?

fzsnzjdm  于 2022-12-29  发布在  Docker
关注(0)|答案(4)|浏览(279)

我正在尝试将Portainer的一个示例部署到Docker群。我不确定如何设置正确的标志来启用SSL。
来自文档:

$ docker run -d -p 443:9000 --name portainer --restart always -v ~/local-certs:/certs -v portainer_data:/data portainer/portainer --ssl --sslcert /certs/portainer.crt --sslkey /certs/portainer.key

https://portainer.readthedocs.io/en/stable/deployment.html
但是如何将其转换为docker compose yml文件呢?

6ju8rftf

6ju8rftf1#

可能我有点晚了,但看起来你必须使用Portainer的标志来为你的Portainer启用ssl(如文档中所述),而composerize.com在某处丢失了这一部分,所以你应该把它添加到你的compose中:

command:
  --sslcert /certs/portainer.crt
  --sslkey /certs/portainer.key

或对于完整合成文件:

version: 3
services:
    portainer:
        image: portainer/portainer
        container_name: portainer
        restart: always
        ports:
            - '443:9000'
        volumes:
            - '~/local-certs:/certs'
            - 'portainer_data:/data'
        command:
            --sslcert /certs/portainer.crt
            --sslkey /certs/portainer.key
taor4pac

taor4pac2#

根据Portainer文档:
默认情况下,Portainer的Web界面和API通过HTTP公开。这不安全,建议在生产环境中启用SSL。
为此,您可以使用以下标志--ssl、--sslcert和--sslkey:
第一个月
可以使用以下命令生成所需的文件:
$ openssl genrsa -out portainer.key 2048 $ openssl ecparam -genkey -name secp384r1 -out portainer.key $ openssl req -new -x509 -sha256 -key portainer.key -out portainer.crt -days 3650
注意,Certbot也可以用于生成证书和密钥。
作为Rubin suggests,您可以使用https://composerize.com/docker命令生成docker-compose.yml
因此,您的docker-compose文件应该如下所示:

version: '3'
services:
    portainer:
        image: portainer/portainer
        container_name: portainer
        restart: always
        ports:
            - '443:9000'
        volumes:
            - '~/local-certs:/certs'
            - 'portainer_data:/data'
        command:
            --ssl
            --sslcert /certs/portainer.crt
            --sslkey /certs/portainer.key
volumes:
    portainer_data:
8fq7wneg

8fq7wneg3#

https://composerize.com/可以帮助您将docker命令转换为docker-compose.yml

rhfm7lfc

rhfm7lfc4#

以下是我的工作:

version: '3'
services:
  portainer:
    image: portainer/portainer-ce
    volumes:
    - "/local-certs:/certs"
    - "portainer_data:/data"
    restart: always
    ports:
    - "9000:9000"
    container_name: portainer
    command:
    - --ssl
    - --sslcert
    - /certs/wildcard.crt
    - --sslkey 
    - /certs/wildcard.key

相关问题