一、前言

  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. 将本地开发完的SDK代码上传到SVN上面:an error occurred while contacting the repository The server may be unreachable or the URL may be incorrect

    将本地开发完的SDK代码上传到SVN上面:an error occurred while contacting the repository  The server may be unreachabl ...

  2. JS中判断对象是不是数组的方法

    JavaScript中检测对象的方法 1.typeof操作符 这种方法对于一些常用的类型来说那算是毫无压力,比如Function.String.Number.Undefined等,但是要是检测Arra ...

  3. js备忘录1

    新建对象 赋值和取值操作 var book={ topic:"JavaScript", fat: true }; book.topic  通过点访问 book["fat& ...

  4. final发布视频展示博客

    Part One [探路者]选题展示视频链接: http://v.youku.com/v_show/id_XMzIxMDM2MTQ1Ng==.html?spm=a2h3j.8428770.341605 ...

  5. OO学习体会与阶段总结(设计与实现)

    前言   在最近的一个月的课程中,笔者对于规格化编程进行了深入的学习.运用面向对象抽象思想对编写的程序进行过程抽象.异常处理.数据抽象.类的层次规格与迭代等等规格设计,使得程序结构化程度提高,具有更好 ...

  6. 5233杨光--Linux第二次实验

    实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou,密码shiyanlou 若不小心登出后,直接刷新页面即可 2. 环境使用 完成实验后可以点击桌面上方的“实验截图”保存并分享实 ...

  7. windows redis 后台运行

    1. 进入 DOS窗口2. 在进入Redis的安装目录3. 输入:redis-server --service-install redis.windows.conf --loglevel verbos ...

  8. 半夜思考之查漏补缺, Spring 中的容器后处理器

    之前学 Spring 的时候 , 还没听过容器后处理器 , 但是一旦写出来 , 就会觉得似曾相识 . 容器配置器通常用于对 Spring 容器进行处理 , 并且总是在容器实例化任何其他 Bean 之前 ...

  9. 一个java高级工程师的进阶

    宏观方面 一. JAVA.要想成为JAVA(高级)工程师肯定要学习JAVA.一般的程序员或许只需知道一些JAVA的语法结构就可以应付了.但要成为JAVA(高级) 工程师,您要对JAVA做比较深入的研究 ...

  10. C++解析命令行参数(仿C语言args)

    说好不造轮子的,就管不住这手 #include <cstdio> #include <string> #include <vector> bool ParseCha ...