zoukankan      html  css  js  c++  java
  • 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
    

      访问测试:

      

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

  • 相关阅读:
    HDU:2767-Proving Equivalences(添边形成连通图)
    POJ:1330-Nearest Common Ancestors(LCA在线、离线、优化算法)
    HDU:1269-迷宫城堡(tarjan模板)
    Xml 丶json丶 C/S KVO 数据库 SQL 数据持久化 复杂对象 集合视图综合
    项目穿越记
    SDP (Session Description Protocol)
    shell脚本实现查找文件夹下重复的文件,并提供删除功能
    HDU 2896 病毒侵袭 (AC自动机)
    项目启动那些事儿
    C++ 完美破解九宫格(数独)游戏
  • 原文地址:https://www.cnblogs.com/bigberg/p/8819152.html
Copyright © 2011-2022 走看看