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

  訪問測試:

  

  可以看到配置文件是可以被容器應用的。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM