当前位置:科技动态 > 带你了解Docker背后的守护进程

带你了解Docker背后的守护进程

  • 发布:2023-09-30 07:18

1。守护进程简介

  • Docker以root权限运行其守护进程,处理普通用户无法完成的操作(例如挂载文件系统)。 docker程序是Docker daemon的客户端程序,也需要以root身份运行。用户可以 使用“docker daemon”命令控制 Docker 守护进程
  • 注意: 在 Docker 1.8 之前,Docker 守护进程是通过 -d 标志控制的,无需使用 docker daemon 子命令
  • / var /run /docker.sock:
    • 守护进程监听这个Unix套接字文件,获取来自客户端的Docker请求
    • 如果系统中存在名为docker的用户组,则Docker会将该套接字文件的所有者为设置为该用户组。这样docker用户组中的所有用户就可以直接运行Docker了,无需使用sudo命令

  • 警告:前面提到,docker用户组虽然方便了Docker的使用,但毕竟存在安全风险。因为 docker 用户组对 Docker 的权限与 root 用户相同,所以只有真正需要使用 Docker 的用户和程序才应该添加到 docker 用户组

2。守护进程的状态、启动、关闭和重启

查看守护进程状态

sudo服务docker状态

启动、关闭、重启

#停止守护进程
sudo service docker stop#启动守护进程
sudo service docker start#重启守护进程
sudo服务docker重启

  • 注意:您还可以适当地使用 init 系统来管理和更新 Docker 守护进程的启动配置

3。守护进程的配置

-H 选项

  • 运行 Docker 守护进程时,可以使用 -H 标志来:
    • 调整守护进程绑定监听接口的方式,可以指定不同的网络接口和端口配置
    • 还可以将守护进程绑定到指定的Unix套接字路径
  • 例如下面指定Docker守护进程绑定到主机的所有网络接口
sudo docker daemon -H tcp://0.0.0.0:2375
  • 例如以下指定Docker守护进程绑定在指定的socket上
sudo docker daemon -H unix://home/docker/docker.sock
  • 例如以下同时绑定网络接口和套接字地址
sudo docker 守护进程 -H tcp://0.0.0.0:2375 -H unix://home/docker/docker.sock

DOCKER_HOST 环境变量

  • 如果通过上面的docker daemon命令修改Docker接口,那么客户端操作Docker服务器时,每次都需要指定-H选项,如
docker -H :2375
  • 如果您不想每次运行客户端时都指定 -H 标志,您可以更改 DOCKER_HOST 环境变量
  • 注意:如果您的 Docker 在代理或公司防火墙后面运行,您可以还可以使用 HTTPS_PROXY、HTTP_PROXY 和 NO_PROXY 选项来控制守护程序如何连接

TLS 认证

  • 默认情况下,Docker 的客户端-服务器通信是未经身份验证的。这意味着如果 Docker 绑定到公共网络接口,任何人都可以连接到 Docker 守护进程。 Docker 0.9及以后版本提供了TLS认证
  • 读者将在后面介绍Docker API时了解如何启用TLS认证

-D 选项

sudo docker 守护进程-D
  • 使用 -D 标志输出有关 Docker 守护进程的更多详细信息

4。配置文件

  • 以上配置都是通过命令配置的。重启 Docker 后它们将失效。如果想永久保存,可以写一个配置文件

ubuntu

  • ubuntu系统下,配置文件为/etc/default/docker文件

  • 默认内容如下

  • 备注(要点):
    • 在桌面版ubuntu上安装docker时,默认配置文件/etc/default/docker中的配置无效(14.04服务器没有问题)版本),导致之前的很多工作进展缓慢。这个问题在官方文档中已经出现过
    • 所以如果是桌面版docker,请修改/lib/systemd/system/docker.service配置文件,使用“sudo systemctl daemon-reload”重启Docker服务
    • 以下文章中有演示案例:https://www.sychzs.cn/qq_41453285/article/details/107642615

Fedora、红帽

  • 在Fedora和Red Hat版本中,配置文件为/usr/lib/systemed/system/docker.service文件或/etc/sysconfig/docker文件
  • 详细信息请参考:https:// /博客。 www.sychzs.cn/qq_41453285/article/details/107642615

  • 我是小东,V公众点击“免费笔记”,解锁更多【Docker】信息内容。

 

相关文章