docker守护进程dockerd

这篇具有很好参考价值的文章主要介绍了docker守护进程dockerd。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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套接字。例如:

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模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【云原生-深入理解Kubernetes-1】容器的本质是进程

    大家好,我是秋意零。 😈 CSDN作者主页 😎 博客主页 👿 简介 👻 普通本科生在读 在校期间参与众多计算机相关比赛,如:🌟 “省赛”、“国赛” ,斩获多项奖项荣誉证书 🔥 各个平台, 秋意零/秋意临 账号创作者 🔥 云社区 创建者 点赞、收藏+关注下次不迷路! 欢迎加

    2024年02月02日
    浏览(56)
  • 【云原生-深入理解 Kubernetes 系列 3】深入理解容器进程的文件系统

    【云原生-深入理解Kubernetes-1】容器的本质是进程 【云原生-深入理解Kubernetes-2】容器 Linux Cgroups 限制 大家好,我是秋意零。 😈 CSDN作者主页 😎 博客主页 👿 简介 👻 普通本科生在读 在校期间参与众多计算机相关比赛,如:🌟 “省赛”、“国赛” ,斩获多项奖项荣誉证书

    2024年02月06日
    浏览(49)
  • 解决没有足够权限访问Docker守护进程的问题permission denied while trying to connect to the Docker daemon socket at unix

    运行Docker ps命令,报错:/v1.24/containers/json\\\": dial unix /var/run/docker.sock: connect: permission denied   这个错误通常是由于当前用户没有足够的权限来访问 Docker 服务,在 Docker 默认情况下只有 root 用户或者在 docker 组中的用户才有权限访问 Docker 服务。出现这个错误,您可以尝试以下解

    2024年02月15日
    浏览(47)
  • 云原生Docker容器管理

    目录 docker容器的管理 容器创建  查看容器的运行状态 启动容器 创建并启动容器  终止容器运行  删除容器  容器的进入  查看容器详细信息 复制到容器中 从容器复制文件到主机 容器的导出与导入 导出  导入 相当于一个进程,性能接近于原生,几乎没有损耗; docker容器在

    2024年02月07日
    浏览(51)
  • 容器和云原生(二):Docker容器化技术

      目录 Docker容器的使用 Docker容器关键技术 Namespace  Cgroups UnionFS         首先直观地了解docker如何安装使用,并快速启动mysql服务的,启动时候绑定主机上的3306端口,查找mysql容器的ip,使用mysql -h containerIP 或者127.0.0.1就可以直接访问mysql服务,暂不考虑mysql的存储卷。    

    2024年02月12日
    浏览(45)
  • docker学习-容器中的进程

    进入容器nginx:docker exec -it nginx-demo /bin/bash [root@192 docker]# docker exec -it nginx-demo /bin/bash root@9afab2acfaa4:/# 执行上述命令,命令提示符会从host主机的提示符变成容器的提示符(host主机就是容器所在的主机),容器的提示符是root@9afab2acfaa4:/#,9afab2acfaa4正是容器的id,也就是docker ps命令

    2024年02月09日
    浏览(31)
  • 显示GPU进程所属docker 容器

    问题1 :一台服务器,每个人在上面 run 一个容器,跑各自的代码,虽然通过 nvidia-smi 可以看到 每个进程占用的 GPU ,但是不好找进程对应的容器 id ,就没法确认到底是谁占用了较多GPU。 问题2 :当我们在自己的 docker 容器中使用GPU进行模型训练时,训练完毕后,发现GPU 仍然

    2024年02月10日
    浏览(27)
  • 『 云原生·Docker』Docker容器相关操作(二)

    本系列主要分为以下六大部分,正在更新中,尽请期待! 『 云原生·生之门』 『 云原生·前置知识』 『 云原生·Docker』 『 云原生·Kubernetes』 『 云原生·KubeSphere』 『 云原生·DevOps』 🚩点击关注本专栏 提示:已经更新的或正在更新的文章前面打勾了哈! 容器是 Docker的另一个

    2024年02月06日
    浏览(44)
  • 云原生——Docker容器化实战

    ❄️作者介绍:奇妙的大歪❄️ 🎀个人名言:但行前路,不负韶华!🎀 🐽 个人简介:云计算网络运维专业人员 🐽 前言        \\\"Docker\\\"一词指代了多个概念,包括开源社区项目、开源项目使用的工具、主导支持此类项目的公司 Docker Inc.,以及该公司官方支持的工具。这些

    2024年02月11日
    浏览(36)
  • 【云原生丶Docker】Docker容器常用命令大全

    在 Docker 核心概念理解 一文中,我们知道 Docker容器 其实就是一个轻量级的沙盒,应用运行在不同的容器中从而实现隔离效果。容器的创建和运行是以镜像为基础的,容器可以被创建、销毁、启动和停止等。本文将介绍下容器的这些常用操作命令。 docker run 命令表示新建并运

    2024年02月04日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包