Docker守护进程的配置和操作

举报
justzeng 发表于 2019/01/18 13:55:39 2019/01/18
【摘要】 我们使用了Linux的ps命令查看了Docker守护进程的运行状态。那么,除了ps命令,我们也可以使用Docker提供的“service docker status ”命令来查看Docker守护进程的运行状态: 通过Active状态为“active(running)”可以看出,Docker守护进程服务为激活状态,正在运行。其中Main PID就是返回的Docker...

我们使用了Linux的ps命令查看了Docker守护进程的运行状态。那么,除了ps命令,我们也可以使用Docker提供的“service docker status  ”命令来查看Docker守护进程的运行状态:

20190106202629602.png


通过Active状态为“active(running)”可以看出,Docker守护进程服务为激活状态,正在运行。其中Main PID就是返回的Docker的进程ID。
注:如果Linux当前用户为root,实际上无需添加sudo命令,如果不是root用户,需要添加sudo来执行管理员级别的指令,前提是该账户的该指令root用户给了授权。

一、Docker守护进程的启停
下面我们来学习如何启动、停止和重启Docker的守护进程。
我们需要使用到Linux的service命令,相关的操作如下:
sudo service docker start
sudo service docker stop
sudo service docker restart

我们使用“stop”命令停止Docker守护进程:

20190106202648460.png

可以看到,执行完停止命令后,查看status状态时,Active状态为“inactive(dead)”,即Docker守护进程的状态为“未激活”,即相关后台服务已经被杀死(dead)。
然后我们执行“start”启动Docker守护进程:


20190106202658689.png

可以看到,执行完启动命令后,查看status状态时,Active状态为“active(running)”已激活状态。可以注意到,此时Dock守护进程的进程ID(PID),也已经更新为新启动服务的进程ID了。

而“restart”重启命令,实际上是先执行了“stop”命令来停止服务,后执行了“start”命令;来启动服务。

当我们修改了Docker的启动配置时,就需要使用service命令来重新启动Docker服务,以使得修改的配置能够得到应用。

二、Docker的启动选项
Docker针对不同的应用场景,为守护进程提供了非常丰富的启动配置选项。而这种配置选项,是通过如下格式来运行的:
docker -d [OPTIONS]
其中-d是代表以“守护”的方式来运行Docker的程序,后面的“[OPTIONS]”就是守护进程的配置选项,Docker提供了非常丰富的配置选项,如下:
1.Docker守护进程相关
与Docker守护进程相关的运行选项,它包含了Docker的目录、日志级别、进程id、写入文件的地址、debug模式的开启以及docker运行时使用的驱动模式等等:

-D, --debug= false                              debug模式的开启
-e, --exec-driver="native"                 docker运行时使用的驱动模式
-g, --graph="/var/lib/docker"           设置Docker运行时根目录
--icc=true                                          设置启用内联容器的通信。
-l,--log-level="info"                          docker的日志级别指定
--label=[]                                           docker标签
-p, --pidfile="/var/run/docker.pid" 设置后台进程PID文件路径。


2.Docker服务器连接相关

-G, --group="docker"                                 在后台运行模式下,赋予指定的Group到相应的unix socket上。注意,当此参数 --group 赋予空字符串时,将去除组信息
-H, --host=[]                                             设置后台模式下指定socket绑定,可以绑定一个或多个 tcp://host:port, unix:///path/to/socket, fd://* 或 fd://socketfd。如:$ docker -H tcp://0.0.0.0:2375 ps 或者$ export DOCKER_HOST="tcp://0.0.0.0:2375"$ docker ps
--tls=false                                                 设置是否使用TLS
--tlscacert="/home/sven/.docker/ca.pem" 设置要在远程证书中使用的CA证书文件的路径
--tlscert="/home/sven/.docker/cert.pem" 设置证书文件路径
--tlskey="/home/sven/.docker/key.pem" 设置密匙文件路径
--tlsverify=false 使用TLS远程证书,守护进程与客户端全部使用证书验证
 3.Remote API相关

--api-enable-cors=false                         设置是否允许远程API调用。
4.存储相关

-s, --storage-driver=""                             设置容器运行时使用指定的存储驱动,如,指定使用devicemapper,可以这样:docker -d -s devicemapper
--selinux-enabled=false                             设置启用selinux支持
--storage-opt=[]                                         设置存储驱动的参数
5.Registry(仓库连接)相关

--insecure-registry=[]                                 使用私有证书搭建docker注册服务器时,设置docker注册服务器域名
--registry-mirror=[]                                     设置docker registry 的镜像地址
我们在后面的学习中,会用到该选项来配置Docker的镜像连接。

6.网络设置相关

-b, --bridge=""                                             使用事先创建的网桥接口。若设置为none,则不在容器内使用网络
--bip=""                                                         使用CIDR标记法设置docker 的IP带宽。该选项不能与-b选项同时使用
--fixed-cidr=""                                                 固定分配IPv4地址的带宽。该IP地址必须在-b选项设置的网桥网络或--bip设置的IP网段内
--fixed-cidr-v6=""                                         设置 IPv6子网
--dns=[]                                                         设置容器使用DNS服务器。例如: docker -d --dns 8.8.8.8
--dns-search=[]                                                 设置容器使用指定的DNS搜索域名。如: docker -d --dns-search example.com
--ip=0.0.0.0                                                         设置容器绑定IP时使用的默认IP地址
--ip-forward=true                                                 设置启动容器的 net.ipv4.ip_forward
--ip-masq=true                                                     为网桥上的IP地址开启IP伪装(masquerading)
--iptables=true                                                     设置启动Docker容器自定义的iptable规则
--ipv6=false                                                         设置是否使用ipv6子网
--mtu=0                                                       设置容器网络的MTU值,如果没有这个参数,选用默认 route MTU,如果没有默认route,就设置成常量值 1500。
                                                                   这些网络选项为Docker的运行提供了非常大的灵活性。

上面我们对Docker的配置选项进行了简单的介绍,为的是告诉大家Docker有非常灵活的设置模式,有关这些选项的详细剖析,在后面的学习中,在相应的使用场景中在更详细的介绍。
同时也可以登录Docker官方网站,来查看Docker这些配置选项的具体含义:
https://docs.docker.com/reference/commandline/cli

我们知道了Docker有如此多的配置选项,但是Docker服务的启动,并不是通过命令行来启动的,那么这些选项怎样应用到Docker守护进程启动的过程中呢?这里就需要介绍Docker的启动配置文件:
(1)老版
在1.12版本后之前,由于不同操作系统不同的init初始化系统,Docker的初始化配置文件根据不同的系统放置在不同的位置,在Ubuntu 中的位置是:/etc/default/docker,在CentOS中的位置是:/etc/sysconfig/docker。
(2)新版
1.12版本后, 用户可以自行创建 /etc/docker/daemon.json 该文件, 该文件是 docker 进程的配置管理文件, 里面几乎包含了所有 docker 命令行启动可以配置的参数, 不管是哪个平台, 不管是以何种方式启动, 默认都会来这里读取配置。
具体描述参见:https://blog.csdn.net/u013948858/article/details/79974796

我们把需要配置的启动配置编写进Docker的启动配置文件即可。

下面进行演示,使用“vim”来打开docker的启动配置文件(使用daemon.json文件配置方式):

20190106203558864.png

我们进入编辑状态,为其添加一个启动选项:

20190106203606945.png

这里我们添加一个“lebel选项”:

"labels":["nodeName=docker_server_1"]
“lebel选项”可以定义一个key-value的值,而这个值可以在“docker info”命令中查看到。
我们将该文件保存并退出,然后重启docker守护进程:8394e3c63ee9dc0e5344c13929ac091.png


此时使用“docker info”命令,查看docker守护进程的运行情况,可以看到刚刚配置的选项已经加在了docker守护进程的启动配置选项中。

三、小结
本篇学习了以下知识点:
1.查看Docker守护进程的运行状态
2.启动、停止、重启Docker守护进程
3.Docker守护进程的启动选项
4.修改Docker守护进程的启动配置



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。