【问题标题】:docker service start is activating forever on Debiandocker service start 在 Debian 上永久激活
【发布时间】:2017-08-29 12:10:50
【问题描述】:

我尝试在我的 debian vm 上设置 docker。在弄清楚如何让 docker 读取默认/docker 文件后,我遇到了一个问题,它正在启动并且实际上是在我配置它的那个端口上。但它还没有完成启动过程。

操作系统详细信息

PRETTY_NAME="Debian GNU/Linux 9 (stretch)"
NAME="Debian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

/etc/default/docker

DOCKER_OPTS="-H tcp://127.0.0.1:2375"

docker.service

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target docker.socket firewalld.service
Wants=network-online.target
Requires=docker.socket

[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker -d $DOCKER_OPTS -H fd://
ExecReload=/bin/kill -s HUP $MAINPID
LimitNOFILE=1048576
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s

[Install]
WantedBy=multi-user.target

服务码头工人状态

● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: activating (start) since Tue 2017-08-29 13:51:04 CEST; 15min ago
     Docs: https://docs.docker.com
 Main PID: 883 (docker)
    Tasks: 3 (limit: 4915)
   Memory: 4.2M
      CPU: 10ms
   CGroup: /system.slice/docker.service
           └─883 /usr/bin/docker -d -H tcp://127.0.0.1:2375 -H fd://

如您所见,它现在运行了 15 分钟,我不知道这是什么问题。

【问题讨论】:

  • 终止服务并在终端运行sudo dockerd -H tcp://127.0.0.1:2375 -H fd://,看看它是否有效
  • WARN[0000] [!] DON'T BIND ON ANY IP ADDRESS WITHOUT setting --tlsverify IF YOU DON'T KNOW WHAT YOU'RE DOING [!] no sockets found via socket activation: make sure the service was started by systemd
  • 改用sudo dockerd -H tcp://127.0.0.1:2375
  • 终于奏效了!谢谢!我试图从docker.service 文件中删除-H fd://,但看起来他仍然保留它
  • 在我的例子中,我在 /var/lib/docker.我停止了服务,卸载了 docker,删除了那个文件夹,安装了 docker,它就可以工作了。

标签: docker debian virtual-machine


【解决方案1】:

Docker 的侦听套接字(dockerd)或连接套接字(docker-cli)具有类似 URL 的语法。这些是完全没有记录的,并且经常具有误导性。例如,fd:// 不侦听/连接到文件描述符,而是使用静态套接字。我试图通过在我的this 答案中分析 docker-cli 源来收集参考列表。

我还发现 dockerd 中的默认 fd:// 设置存在类似问题。我的结果和这里的问题 cmets / chat logs 都表明通过指定的 TCP 端口(理想情况下,tcp://127.0.0.1:2375)更改它可以解决问题。

【讨论】:

  • 下次不能测试了。如果有人将此视为可行的解决方案,请告诉我我可以将其标记为答案然后
猜你喜欢
  • 1970-01-01
  • 2020-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-06
  • 2016-10-19
  • 2018-03-01
  • 2016-08-25
相关资源
最近更新 更多