Swarm配置文件管理
一、前言
Docker 17.06引入了swarm服务配置,允许您在服务映像外部或运行容器中存储非敏感信息,例如配置文件。 这允许您保持镜像尽可能通用,而无需将配置文件绑定到容器或使用环境变量。在Swarm Service中可以随时添加或删除配置,并且service可以共享配置。甚至可以将配置与环境变量或标签结合使用,以获得最大的灵活性。 配置值可以是通用字符串或二进制内容(最大可达500 kb)。
注意:Docker配置仅适用于群集服务,而不适用于独立容器。
二、Docker config
2.1 查看命令
[root@manager ~]# clear [root@manager ~]# docker config --help Usage: docker config COMMAND Manage Docker configs Options: Commands: create Create a config from a file or STDIN inspect Display detailed information on one or more configs ls List configs rm Remove one or more configs
2.1 创建配置文件
# 创建一个nginx的简单配置文件 # 先要有一个配置文件存在 [root@manager ~]# cd /data/conf/ [root@manager conf]# ls test-nginx.conf # 内容 [root@manager conf]# cat test-nginx.conf server { listen 81; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } } # 创建docker swarm 配置 [root@manager conf]# docker config create test.conf test-nginx.conf 3ttdaggwatpjict89yav6kr6x test.conf : docker config 配置文件 # 查看config 配置文件 [root@manager conf]# docker config ls ID NAME CREATED UPDATED 3ttdaggwatpjict89yav6kr6x test.conf 2 hours ago 2 hours ago # 查看详细配置 [root@manager conf]# docker config inspect test.conf [ { "ID": "3ttdaggwatpjict89yav6kr6x", "Version": { "Index": 21278 }, "CreatedAt": "2018-04-13T03:34:46.900656812Z", "UpdatedAt": "2018-04-13T03:34:46.900656812Z", "Spec": { "Name": "test.conf", "Labels": {}, "Data": "c2VydmVyIHsKICAgIGxpc3RlbiAgODE7CiAgICBzZXJ2ZXJfbmFtZSAgbG9jYWxob3N0OwogICAgbG9jYXRpb24gLyB7CiAgICAgICAgICAgIHJvb3QgL3Vzci9zaGFyZS9uZ2lueC9odG1sOwogICAgICAgICAgICBpbmRleCBpbmRleC5odG1sIGluZGV4Lmh0bTsKCX0KfQo=" } } ]
2.3 创建service
# 现在只有一个副本来测试 [root@manager conf]# docker service create \ --name my-web \ --config src=test.conf,target=/etc/nginx/conf.d/test.conf \ --publish 8081:81 \ nginx 参数: --name : 服务名称 --config : 添加配置 --publish :暴露端口 # 查看在哪个节点 [root@manager ~]# docker service ps my-web ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS jh03twrijdbh my-web.1 nginx:latest node-01 Running Running 2 hours ago # 在node-01做修改 在该nginx容器中默认web访问路径中增加一个页面 echo "Hello Docker.From Swarm Config." > /usr/share/nginx/html/index2.html
访问测试:
可以看到配置文件是可以被容器应用的。