您可以阅读官方文档中的相应部分。
要使用机密,您需要在
docker-compose.yml文件中添加两件事。首先,一个
secrets:定义所有机密的顶级块。然后,另一个
secrets:每个服务下块,它指定 该
秘密服务应该接收。
作为示例,创建Docker将理解的两种类型的秘密: 外部 秘密和 文件 秘密。
1.使用以下命令创建“外部”秘密docker secret create
第一件事:要在Docker上使用机密,您所在的节点必须是集群的一部分。
$ docker swarm init
接下来,创建一个“外部”秘密:
$ echo "This is an external secret" | docker secret create my_external_secret -
(请确保在最后加上破折号
-。很容易错过。)2.将另一个秘密写入文件
3.创建$ echo "This is a file secret." > my_file_secret.txt
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_secretsecrets: # top level secrets block my_external_secret: external: true my_file_secret: file: my_file_secret.txt
Docker可以从自己的数据库(例如使用制成的秘密
docker secret create)或文件中读取秘密。上面显示了两个示例。4.部署测试堆栈
使用以下方法部署堆栈:
$ docker stack deploy --compose-file=docker-compose.yml secret_test
这将创建一个
web名为的服务实例
secret_test_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$ lsmy_external_secret my_file_secretroot@secret_test_web:/run/secrets$ cat my_external_secretThis is an external secretroot@secret_test_web:/run/secrets$ cat my_file_secretThis is a file secret.
如果一切顺利,我们在步骤1和2中创建的两个秘密应该位于
web部署堆栈时创建的容器内。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)