一、前言

  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

  访问测试:

  

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

Swarm配置文件管理的更多相关文章

  1. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  2. Python-day3作业-haproxy配置文件管理脚本

    #!/usr/bin/env python import os,sys,time,re,prettytable,json from collections import defaultdict,Ord ...

  3. 【C#进阶系列】03 配置文件管理与程序集的引用版本重定向

    先来点与标题不相关的: CLR支持两种程序集:弱命名程序集和强命名程序集. 两者的区别在于强命名程序集使用发布者的公钥和私钥进行签名.由于程序集被唯一性地标识,所以当应用程序绑定到强命名程序集时,CL ...

  4. C#配置文件管理

    最近在做项目的过程中用到配置文件,本文简要说明本人在项目过程中是如何使用配置文件的,目的是加深自己对配置文件管理的理解,以便在下次使用时能做到轻松自如. 配置文件,顾名思义,是用户在使用系统或者软件时 ...

  5. 死磕salt系列-salt 配置文件管理

    SLS是Salt State系统的核心,用来描述系统的目标状态,使用YAML语言书写.被用作配置文件管理. SLS文件 sls配置文件分为两种类型 top.sls 这是所有配置文件的入口 sls 这是 ...

  6. disconf实践(四)基于注解的分布式配置文件管理,自动reload

    上一篇讲解了基于xml的自动reload的分布式配置文件管理,这一篇讲解基于注解的自动reload的方式(基于disconf实践二). 1. 修改spring配置文件 <?xml version ...

  7. disconf实践(三)基于XML的分布式配置文件管理,自动reload

    上一篇介绍了基于xml的非自动reload的分布式配置文件管理,这一篇介绍自动reload的方式(基于disconf实践二). 1. 修改RedisConfig.java package org.sp ...

  8. Haproxy安装部署文档及多配置文件管理方案

    一.部署安装 二.软件配置 三.系统服务 四.日志配置 五.小结 文章目录 最近我在负责一个统一接入层的建设项目,涉及到 Haproxy 和 ospf 的运维部署,本文分享一下我在部署 Haproxy ...

  9. CentOS 7配置LNMP开发环境及配置文件管理

    安装并配置MySQL 5.6 从CentOS从7.x开始默认使用MariaDB.MariaDB完全兼容MySQL,包括API和命令行.但是很多时候我们还是会想要安装MySQL,所以不能直接通过yum命 ...

随机推荐

  1. Java实验五(客户端)

    一.    实验内容 1.    运行教材上TCP代码,结对进行,一人服务器,一人客户端: 2.    利用加解密代码包,编译运行代码,客户端加密,服务器解密: 3.    客户端加密明文后将密文通过 ...

  2. Servlet 3.0对上传的支持

    Servlet 2.5 进行上传   首先对表单的要求     ->method ="post"    ->enctype="multipart/form-d ...

  3. 第三个spirit(第十四天)

    一 .进度(自习室) 本来十号要开始进行第三次冲刺,不过因为团队很多成员要进行协会和组织的换届,而且团队还换了新 人又加了人进来,所以我们今天才是第三次冲刺的第一天.我们进行了新团队的第一次会议.基于 ...

  4. 单调队列(数列中长度不超过k的子序列和的最值)

    ★实验任务 小 F 很爱打怪,今天因为系统 bug,他提前得知了 n 只怪的出现顺序以及击 倒每只怪得到的成就值 ai.设第一只怪出现的时间为第 1 秒,这个游戏每过 1 秒 钟出现一只新怪且没被击倒 ...

  5. 编写wordcount程序

    一.程序概述 1.此次编写的程序为邹欣老师<构建之法>科书2.4.2 wordcount程序. 2.我写的wordcount程序要实现的功能整体可以总结为: ① 统计word文档中的字符数 ...

  6. AWS EC2安装docker时的问题

    在AWS EC2的实例(Ubuntu)里面安装docker时,使用通常的安装步骤 :~$ sudo apt-get update :~$ sudo apt-get install docker 安装完 ...

  7. LeetCode题解:(139) Word Break

    题目说明 Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, dete ...

  8. HDU 2061 Treasure the new start, freshmen!

    http://acm.hdu.edu.cn/showproblem.php?pid=2061 Problem Description background:A new semester comes , ...

  9. testng对执行失败的用例,再次执行

    前段时间在网络上看到通过重写TestNG的接口,可以再次执行失败的测试用例,于是学习了,我之前的做法是当自己的脚本中碰到异常,就自动调用方法本身来达到再次执行用例的目的,这个过程中有设定重试的次数 对 ...

  10. 小程序 上啦下拉刷新window配置

    "enablePullDownRefresh": "true"   /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefres ...