[英]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 start
和docker 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.