docker学习(十三)docker config 的使用
目录
- 前言
- 一、docker config 命令
- 二、docker config 使用
前言
在集群环境中配置文件的分发,可以通过将配置文件放入镜像中、设置环境变量、挂载volume、挂载目录的方式,当然也可以通过 docker config 来管理集群中的配置文件,这样的方式也更加通用。
一、docker config 命令
1、docker config
[root@swarm-master test]# docker config --htlp
unknown flag: --htlp
See 'docker config --help'.Usage: docker config COMMANDManage Docker configsCommands:create Create a config from a file or STDIN 从文件或标准输入创建configinspect Display detailed information on one or more configs 查看config详细信息ls List configs 查看config列表rm Remove one or more configs 删除configRun 'docker config COMMAND --help' for more information on a command.
2、 创建config
(1)从文件创建
创建文件
vi default.conf
[root@swarm-master test]# cat default.conf
server {listen 88;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}
}
创建config
[root@swarm-master test]# docker config create conf default.conf
je21ykql9tzebr0j2v7ep0kat
查看config
[root@swarm-master test]# docker config ls
ID NAME CREATED UPDATED
je21ykql9tzebr0j2v7ep0kat conf 5 minutes ago 5 minutes ago
(2)从标准输入创建
创建config
[root@swarm-master test]# echo "listen 80" | docker config create conf2 -
nvzeahpik5itq7mrvad08pap6
查看config
[root@swarm-master test]# docker config ls
ID NAME CREATED UPDATED
je21ykql9tzebr0j2v7ep0kat conf 7 minutes ago 7 minutes ago
nvzeahpik5itq7mrvad08pap6 conf2 7 seconds ago 7 seconds ago
3、查看config详细信息
[root@swarm-master test]# docker config inspect conf
[{"ID": "je21ykql9tzebr0j2v7ep0kat","Version": {"Index": 170},"CreatedAt": "2021-12-08T22:12:31.543232369Z","UpdatedAt": "2021-12-08T22:12:31.543232369Z","Spec": {"Name": "conf","Labels": {},"Data": "c2VydmVyIHsKICAgIGxpc3RlbiAgICAgICA4ODsKICAgIHNlcnZlcl9uYW1lICBsb2NhbGhvc3Q7CgogICAgbG9jYXRpb24gLyB7CiAgICAgICAgcm9vdCAgIC91c3Ivc2hhcmUvbmdpbngvaHRtbDsKICAgICAgICBpbmRleCAgaW5kZXguaHRtbCBpbmRleC5odG07CiAgICB9Cn0K"}}
]
对conf进行base64解码
[root@swarm-master test]# docker config inspect -f '{{json .Spec.Data}}' conf | cut -d '"' -f2 | base64 -d
server {listen 88;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm;}
}
4、删除secret
[root@swarm-master test]# docker config rm conf2
conf2
[root@swarm-master test]# docker config ls
ID NAME CREATED UPDATED
je21ykql9tzebr0j2v7ep0kat conf 10 minutes ago 10 minutes ago
二、docker config 使用
1、使用nginx镜像创建容器
在conf配置中,将nginx的监听端口改成了88,替换掉nginx中的默认80端口的配置文件,创建service时,将容器内部端口88端口映射成主机上90端口
[root@swarm-master test]# docker service create --name nginx-01 --config source=conf,target=/etc/nginx/conf.d/default.conf -p 90:88 nginx:latest
pocy3ph88gy7ng9g2lbq9jvnw
overall progress: 1 out of 1 tasks
1/1: running [==================================================>]
verify: Service converged
2、测试
访问90端口,可以看到访问是成功的。
[root@swarm-master test]# curl http://127.0.0.1:90
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
html { color-scheme: light dark; }
body { width: 35em; margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif; }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p><p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p><p><em>Thank you for using nginx.</em></p>
</body>
</html>
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
