Docker守护进程的配置和操作
我们使用了Linux的ps命令查看了Docker守护进程的运行状态。那么,除了ps命令,我们也可以使用Docker提供的“service docker status ”命令来查看Docker守护进程的运行状态:
通过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守护进程:
可以看到,执行完停止命令后,查看status状态时,Active状态为“inactive(dead)”,即Docker守护进程的状态为“未激活”,即相关后台服务已经被杀死(dead)。
然后我们执行“start”启动Docker守护进程:
可以看到,执行完启动命令后,查看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文件配置方式):
我们进入编辑状态,为其添加一个启动选项:
这里我们添加一个“lebel选项”:
"labels":["nodeName=docker_server_1"]
“lebel选项”可以定义一个key-value的值,而这个值可以在“docker info”命令中查看到。
我们将该文件保存并退出,然后重启docker守护进程:
此时使用“docker info”命令,查看docker守护进程的运行情况,可以看到刚刚配置的选项已经加在了docker守护进程的启动配置选项中。
三、小结
本篇学习了以下知识点:
1.查看Docker守护进程的运行状态
2.启动、停止、重启Docker守护进程
3.Docker守护进程的启动选项
4.修改Docker守护进程的启动配置
- 点赞
- 收藏
- 关注作者
评论(0)