dockerd
Docker为守护程序和客户端使用不同的二进制文件。要运行守护程序,请输入dockerd 。dockerd 是 docker 架构中一个常驻在后台的系统进程,称为 docker daemon,dockerd 实际调用的还是 containerd 的 api 接口(rpc 方式实现),docker daemon 的作用主要有以下两方面:
- 接收并处理 docker client 发送的请求
- 管理所有的 docker 容器
要使用调试输出运行守护程序,请使用dockerd -D或在daemon.json文件中添加"debug": true 。
手动启动守护程序
如果你不想使用系统实用程序来管理Docker守护程序,或者只想进行测试,则可以使用以下dockerd 命令手动运行它。你可能需要使用sudo,具体取决于您的操作系统配置。
当您以这种方式启动Docker时,它在前台运行,并将其日志直接发送到您的终端。
$ dockerd
INFO[0000] +job init_networkdriver()
INFO[0000] +job serveapi(unix:///var/run/docker.sock)
INFO[0000] Listening for HTTP on unix (/var/run/docker.sock)
要在手动启动Docker时停止它,请Ctrl+C在终端中发出a 。
配置docker守护进程
有两种配置Docker守护程序的方法:
- 使用JSON配置文件。这是首选选项,因为它将所有配置都放在一个位置。
- 启动时使用标志dockerd。
只要你未同时在标志和JSON文件中指定相同的选项,就可以将这两个选项一起使用。如果发生这种情况,则Docker守护程序将不会启动并显示错误消息。
要使用JSON文件配置Docker守护程序,请/etc/docker/daemon.json在Linux系统或C:\ProgramData\docker\config\daemon.json Windows上创建一个文件 。在MacOS上,转到任务栏中的docker>首选项>守护程序>高级。
配置文件如下所示:
{
"debug": true,
"tls": true,
"tlscert": "/var/docker/server.pem",
"tlskey": "/var/docker/serverkey.pem",
"hosts": ["tcp://192.168.0.1:2376"]
}
通过此配置,Docker守护程序以调试模式运行,使用TLS,并侦听路由到192.168.59.3:port的流量2376。可以在dockerd参考文档中了解可用的配置选项。
还可以手动启动Docker守护程序并使用标志对其进行配置。这对于解决问题很有用。
这是一个如何使用与上面相同的配置手动启动Docker守护程序的示例:
dockerd --debug \
--tls=true \
--tlscert=/var/docker/server.pem \
--tlskey=/var/docker/serverkey.pem \
--host tcp://192.168.0.1:2376
可以在dockerd参考文档中或通过运行以下命令了解可用的配置选项 :
dockerd --help
docker守护进程socket的选项
Docker守护程序可以通过三种不同类型的Socket监听Docker Engine API请求: unix , tcp和fd 。
1、默认情况下,在/var/run/docker.sock上创建一个unix域套接字(或IPC套接字),需要root许可或docker组成员身份。
如果需要远程访问Docker守护程序,则需要启用tcp Socket。
2、可以使用-H tcp://0.0.0.0:2375 2375在所有网络接口上的端口2375上监听,也可以使用其IP地址-H tcp://192.168.0.1:2375在特定的网络接口上监听端口-H tcp://192.168.0.1:2375 。通常使用端口2375进行未加密,使用端口2376进行与守护程序的加密通信。
3、在基于Systemd的系统上,可以通过dockerd -H fd:// 套接字激活与守护程序通信,请使用dockerd -H fd:// 。使用fd://可以在大多数设置中完美运行,但是您也可以指定单个套接字: dockerd -H fd://3 。如果找不到指定的套接字激活文件,则Docker将退出。
dockerd -H unix:///var/run/docker.sock -H tcp://192.168.0.1 -H tcp://10.10.0.1
Docker客户端将使用DOCKER_HOST环境变量来为客户端设置-H标志。使用下面的命令 :
docker -H tcp://0.0.0.0:2375 ps
export DOCKER_HOST="tcp://0.0.0.0:2375"
docker ps
docker客户端可以使用-H连接到自定义端口。Docker客户端默认将连接到Linux上unix:///var/run/docker.sock ,以及Windows上的tcp://127.0.0.1:2376 。
-H接受以下格式的主机和端口分配:
tcp://[host]:[port][path] or unix://path
在守护进程下模式下运行docker:
<path to>/dockerd -H 0.0.0.0:8888 &
下载ubuntu镜像:
docker -H :8888 pull ubuntu
如果您想同时监听TCP和Unix套接字,则可以使用多个-H
# Run docker in daemon mode
$ sudo <path to>/dockerd -H tcp://127.0.0.1:2375 -H unix:///var/run/docker.sock &
# Download an ubuntu image, use default Unix socket
$ docker pull ubuntu
# OR use the TCP port
$ docker -H tcp://127.0.0.1:2375 pull ubuntu
docker运行时执行选项
Docker守护程序依赖于OCI兼容运行时(通过containerd守护程序调用)作为与Linux内核namespaces ,
cgroups和SELinux 。
默认情况下,Docker守护程序会自动启动containerd 。如果要控制containerd启动,请手动启动containerd然后使用–containerd标志将路径传递到containerd套接字。例如:文章来源:https://www.toymoban.com/news/detail-597251.html
dockerd --containerd /var/run/dev/docker-containerd.sock
在docker.service文件也可以使用dockerd来运行守护进程文章来源地址https://www.toymoban.com/news/detail-597251.html
/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
到了这里,关于docker守护进程dockerd的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!