簡體   English   中英

如果重新啟動容器,則Docker中的Docker無法啟動

[英]Docker in docker fails to start if container restarted

我們正在Docker容器中運行Docker構建代理。 它是基於Debian的關閉傑西,並作為記錄直接從碼頭工人碼頭工人得到這里

第一次啟動容器時,docker守護程序運行良好,但第二次則運行不正常。 (如果您不刪除容器)

Dockerfile

FROM debian:jessie

ARG DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
    && apt-get -y install -q \
        apt-transport-https \
        ca-certificates \
        software-properties-common \
        curl \
    && curl -fsSL https://yum.dockerproject.org/gpg | apt-key add - \
    && add-apt-repository \
        "deb https://apt.dockerproject.org/repo/ \
        debian-$(lsb_release -cs) \
        main" \
    && apt-get update \
    && apt-get install -y \
        docker-engine
CMD []

docker-compose.yml

services:
  dockerTest:
    container_name: dockerTest
    privileged: true
    image: tomeinc/intel-docker-node:latest
    command: bash -c "service docker start && sleep 2 && docker ps"

要重現:使用docker docker build -t test .構建Dockerfile docker build -t test . 然后使用docker-compose up兩次。 第二次, docker-ps將失敗,

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

古怪,如果容器保持運行,您可以手動啟動docker運行docker exec -it test /bin/bash ,然后執行service docker startdocker ps

我不太確定如何調試此方法,歡迎提出任何建議。

原來是碼頭工人以為它和/或containterd仍在運行(不是,但是沒有清除PID文件)

建議的調試問題的入門方法:查看日志文件。 我被這個啟示震驚了。

無論如何,在service docker start修復之前,將rm /var/run/docker/libcontainerd/docker-containerd.pid /var/run/docker.pid添加到start命令中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM