您如何使用docker-compose v3.1管理秘密值?

前端之家收集整理的这篇文章主要介绍了您如何使用docker-compose v3.1管理秘密值?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

docker-compose.yml规范版本3.1引入了对secrets支持.

我试过这个:

version: '3.1'

services:
  a: 
    image: tutum/hello-world
  secret: 
    password: the_password
  b:
    image: tutum/hello-world

$docker-compose up返回:

services.secret的不支持的配置选项:’password’

我们如何在实践中使用秘密功能

最佳答案
你可以阅读corresponding section from the official documentation.

要使用秘密,您需要在docker-compose.yml文件添加两件事.首先,定义所有秘密的顶级秘密:块.然后,另一个秘密:在每个服务下阻止服务应该接收的秘密.

例如,创建Docker将会理解的两种类型的秘密:外部秘密和文件秘密.

1.使用docker secret创建一个“外部”秘密

第一件事:使用Docker的秘密,你所在的节点必须是群集的一部分.

$docker swarm init

接下来,创建一个“外部”秘密:

$echo "This is an external secret" | docker secret create my_external_secret -

(确保包括最后的破折号,– 很容易错过.)

将另一个秘密写入文件

$echo "This is a file secret." > my_file_secret.txt

3.创建一个使用这两个密码的docker-compose.yml文件

现在创建了两种类型的秘密,这里是docker-compose.yml文件,它们将会读取这两个文件,并将它们写入Web服务:

version: '3.1'

services:
  web:
    image: Nginxdemos/hello
    secrets:                    # secrets block only for 'web' service
     - my_external_secret
     - my_file_secret

secrets:                        # top level secrets block
  my_external_secret:
    external: true
  my_file_secret:
    file: my_file_secret.txt

Docker可以从其自己的数据库(例如使用docker secret创建的秘密)或从文件读取秘密.上面显示了两个例子.

4.部署测试堆栈

使用以下方式部署堆栈:

$docker stack deploy --compose-file=docker-compose.yml secret_test

这将创建名为secret_test_web的Web服务的一个实例.

5.验证由服务创建的容器是否具有两个秘密

使用docker exec -ti [container] / bin / sh来验证密码是否存在.

(注意:在下面的docker exec命令中,m2jgac …部分将在您的机器上不同.运行docker ps找到您的容器名称.)

$docker exec -ti secret_test_web.1.m2jgacogzsiaqhgq1z0yrwekd /bin/sh

# Now inside secret_test_web; secrets are contained in /run/secrets/
root@secret_test_web:~$cd /run/secrets/

root@secret_test_web:/run/secrets$ls
my_external_secret  my_file_secret

root@secret_test_web:/run/secrets$cat my_external_secret
This is an external secret

root@secret_test_web:/run/secrets$cat my_file_secret
This is a file secret.

如果一切顺利,我们在步骤1和2中创建的两个秘密应该在我们部署堆栈时创建的Web容器中.

原文链接:/docker/436437.html

猜你在找的Docker相关文章