在动态的、大规模的分布式集群上,管理和分发配置文件也是很重要的工作。传统的配置文件分发方式(如配置文件放入镜像中,设置环境变量,volume 动态挂载等)都降低了镜像的通用性。
在 Docker 17.06 以上版本中,Docker 新增了 docker config 子命令来管理集群中的配置信息,以后你无需将配置文件放入镜像或挂载到容器中就可实现对服务的配置。
docker config
注意:config 仅能在 Swarm 集群中使用。
config
这里我们以在 Swarm 集群中部署 redis 服务为例。
redis
新建 redis.conf 文件
redis.conf
port 6380
此项配置 Redis 监听 6380 端口
6380
我们使用 docker config create 命令创建 config
docker config create
$ docker config create redis.conf redis.conf
使用 docker config ls 命令来查看 config
docker config ls
$ docker config ls ID NAME CREATED UPDATED yod8fx8iiqtoo84jgwadp86yk redis.conf 4 seconds ago 4 seconds ago
$ docker service create \ --name redis \ # --config source=redis.conf,target=/etc/redis.conf \ --config redis.conf \ -p 6379:6380 \ redis:latest \ redis-server /redis.conf
如果你没有在 target 中显式的指定路径时,默认的 redis.conf 以 tmpfs 文件系统挂载到容器的 /config.conf。
target
tmpfs
/config.conf
经过测试,redis 可以正常使用。
以前我们通过监听主机目录来配置 Redis,就需要在集群的每个节点放置该文件,如果采用 docker config 来管理服务的配置信息,我们只需在集群中的管理节点创建 config,当部署服务时,集群会自动的将配置文件分发到运行服务的各个节点中,大大降低了配置信息的管理和分发难度。
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8