上一篇总结了Docker的CS模式的具体概念,本篇来学习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守护进程的启动配置

参考资料:
《极客学院Docker学习》教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/85947895

【Docker学习总结】12.Docker守护进程的配置和操作相关推荐

  1. Docker学习二:Docker镜像与容器

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  2. Docker学习四:Docker 网络

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  3. Docker学习一:Docker简介与安装

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  4. Docker学习笔记2 -- Docker的基本命令和使用

    目录 Docker学习笔记1 Docker帮助命令 Docker镜像命令 Docker容器命令 Docker commit操作 Docker学习笔记1 Docker学习笔记1 – Docker基本原理 ...

  5. Docker学习五:Docker 数据管理

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  6. Docker学习三:Docker 数据管理

    前言 本次学习来自于datawhale组队学习: 教程地址为: https://github.com/datawhalechina/team-learning-program/tree/master/ ...

  7. arch下aria2c守护进程等配置小结

    arch下aria2c守护进程等配置小结 前言 aria2c是个好东西,可以把他简单理解为是下载管理器的后端,配合一些前端程序,比如ariaNG,可以管理其下载的各类东西,再配合百度云导出真实下载地址 ...

  8. docker学习笔记(五)docker实战

    目录 一.搭建MySQL高可用集群(pxc+HA-Proxy) 二.Nginx+Spring Boot+MySQL 一.搭建MySQL高可用集群(pxc+HA-Proxy) 参考链接:https:// ...

  9. Docker 学习笔记(Docker 架构 / 镜像 / 容器 / 常用命令 / Dockerfile / 镜像仓库)

    Docker 1. Docker 入门 1.1 Docker 是什么 1.2 Docker 和 虚拟机 1.3 镜像 容器 仓库 1.4 Docker 架构 1.5 Docker 安装 1.6 doc ...

最新文章

  1. 理解系统底层的概念是多么重要
  2. android groovy 注解,Groovy 注释
  3. Nginx —— nginx负载均衡的详细配置 以及 使用案例详解.
  4. Linux学习:shell 命令(软件安装和卸载)
  5. sockaddr_in中sin_zero的意义,以及sockaddr_in sockaddr in_addr区别联系
  6. 史上最全搞怪WC标志(组图)--设计者太有才了。
  7. TP5:验证器的封装——5
  8. [react] 你有使用过loadable组件吗?它帮我们解决了什么问题?
  9. html代码高亮带行号,kindeditor代码高亮自动行号功能
  10. Hooks——钩子概览
  11. mac硬盘空间怎么清理?这样也能清理出上10G的磁盘空间
  12. 腾讯同事要跳槽,问我背包问题具体咋回事,我直接甩给他这篇!
  13. android 播放器 exoplayer hls 播放widevine视频
  14. 旧版微信支付文档链接
  15. mysql超市管理系统怎么写_求php+mysql的小型超市管理系统
  16. 多个工作表数据汇总怎么做?
  17. springboot初次使用template可能遇到的问题
  18. 画出漂亮的神经网络图,神经网络可视化工具大汇总
  19. 自然语言处理之维特比(Viterbi)算法
  20. 务实java基础之集合总结

热门文章

  1. 《HelloGitHub》第 39 期
  2. 基于OpenGL的LS分形演示程序
  3. 计算机硬件系统(一)
  4. 第六章 TCP/IP-网络传输硬件设备
  5. python简单绘图(根据表格绘制曲线图)
  6. 连接MySQL: Connections could not be acquired from the underlying database
  7. 3年前端入职健海科技(数疗领域方向),试用期总结
  8. 树莓派3b+家庭nas搭建安装openmediavault必要插件安装采坑
  9. 超详细: 使用 OpenSSL 命令行管理证书
  10. Android调用系统相机拍照像素太低以及内存溢出问题