很重要的功能,但使用起来很简单
new
1 | echo "root" | docker secret create mysql57_root_password - |
新建一个带secret的service
1 | docker service create --replicas 2 --secret mysql57_root_password --name hello_with_secret alpine ping docker.com |
直接通过条件打印出mysql57_root_password
1
2docker container exec `docker ps --filter name=hello_with_secret -q` cat /run/secrets/mysql57_root_password
# root
新建一个带secret的service并且改变secret容器中的文件位置
把--secret
写成这种格式 source=mysql57_root_password,target=root_password
source 和 target 很好理解
1 | docker service create --replicas 2 --secret source=mysql57_root_password,target=root_password --name hello_with_secret2 alpine ping docker.com |
尝试删除secret
1 | docker secret rm mysql57_root_password |
由于有容器在使用,所以删除失败。那么,我们可以先让容器不再使用该secret
update 命令,后面再说,可以更改一个service的几乎所有属性。
这里用update命令来删除该service对密钥 mysql57_root_password 的使用
1 | docker service update --secret-rm mysql57_root_password hello_with_secret |
此时即可以删除secset了mysql57_root_password
1 | docker secret rm mysql57_root_password |
小结
就是当一个稍微私密一点的env用