Docker container fails to start: Cannot connect to the Docker daemon

Hi I try to build and use Caddy with docker, but the container fails to start. Any hint is appreciated!

1. Caddy version (caddy version):

v 2.4.3, with additional plugins: github.com/lucaslorentz/caddy-docker-proxy/plugin/v2 and github.com/caddy-dns/cloudflare

2. How I run Caddy:

Using a Dockerfile, see below.

docker build -t caddy .
docker run -p 80:80 -p 443:443 caddy

a. System environment:

RaspiOs 64bit, 07.05.2021 Index of /raspios_arm64/images/raspios_arm64-2021-05-28

Docker 20.20.8
> Client: Docker Engine - Community
>  Version:           20.10.8
>  API version:       1.41
>  Go version:        go1.16.6
>  Git commit:        3967b7d
>  Built:             Fri Jul 30 19:55:21 2021
>  OS/Arch:           linux/arm64
>  Context:           default
>  Experimental:      true
> 
> Server: Docker Engine - Community
>  Engine:
>   Version:          20.10.8
>   API version:      1.41 (minimum version 1.12)
>   Go version:       go1.16.6
>   Git commit:       75249d8
>   Built:            Fri Jul 30 19:53:34 2021
>   OS/Arch:          linux/arm64
>   Experimental:     false
>  containerd:
>   Version:          1.4.9
>   GitCommit:        e25210fe30a0a703442421b0f60afac609f950a3
>  runc:
>   Version:          1.0.1
>   GitCommit:        v1.0.1-0-g4144b63
>  docker-init:
>   Version:          0.19.0
>   GitCommit:        de40ad0

b. Command:

-

c. Service/unit/compose file:

Dockerfile:

FROM arm64v8/caddy:2-builder AS builder

RUN xcaddy build \
    --with github.com/lucaslorentz/caddy-docker-proxy/plugin/v2 \
    --with github.com/caddy-dns/cloudflare

FROM arm64v8/caddy:latest

COPY --from=builder /usr/bin/caddy /usr/bin/caddy

ENTRYPOINT ["/usr/bin/caddy"]

CMD ["docker-proxy"]

d. My complete Caddyfile or JSON config:

none

3. The problem I’m having:

The container crashes on startup.

4. Error messages and/or full log output:

{"level":"info","ts":1629804196.1353955,"logger":"docker-proxy","msg":"Running caddy proxy server"}
{"level":"info","ts":1629804196.138217,"logger":"admin","msg":"admin endpoint started","address":"tcp/localhost:2019","enforce_origin":false,"origins":["127.0.0.1:2019","localhost:2019","[::1]:2019"]}
{"level":"info","ts":1629804196.138529,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
{"level":"info","ts":1629804196.1385593,"logger":"docker-proxy","msg":"Running caddy proxy controller"}
{"level":"error","ts":1629804196.139238,"logger":"docker-proxy","msg":"Docker ping failed","error":"Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?"}
docker-proxy: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

systemctl status docker

â—Ź docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2021-08-24 12:46:43 CEST; 48min ago
     Docs: https://docs.docker.com
 Main PID: 3594 (dockerd)
    Tasks: 12
   CGroup: /system.slice/docker.service
           └─3594 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Aug 24 13:21:02 raspberrypi dockerd[3594]: time="2021-08-24T12:21:02.734342630+01:00" level=info msg="Layer sha256:5424ae6913d0bae9de30f5df668fe5ff3221b9c9d48ef964729107428d1440d7 cleaned up"
Aug 24 13:21:03 raspberrypi dockerd[3594]: time="2021-08-24T12:21:03.178993302+01:00" level=info msg="Layer sha256:5424ae6913d0bae9de30f5df668fe5ff3221b9c9d48ef964729107428d1440d7 cleaned up"
Aug 24 13:21:17 raspberrypi dockerd[3594]: time="2021-08-24T12:21:17.779766654+01:00" level=error msg="Not continuing with pull after error: context canceled"
Aug 24 13:21:17 raspberrypi dockerd[3594]: time="2021-08-24T12:21:17.784425720+01:00" level=info msg="Layer sha256:2fdf4c71f4555d1c1cfb68140701d538b3e2d72163901c6494652d5bf4a54e89 cleaned up"
Aug 24 13:21:17 raspberrypi dockerd[3594]: time="2021-08-24T12:21:17.823742842+01:00" level=info msg="Layer sha256:5230b17992b424cb8ade0a685a849e446d1e05b8a48742693e624c5ba05dde9a cleaned up"
Aug 24 13:21:24 raspberrypi dockerd[3594]: time="2021-08-24T12:21:24.369176894+01:00" level=info msg="ignoring event" container=3da1f0b09508fb52b359a58c39fef80035fe0a31fb9e90eca3e1cefb43db8c60 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
Aug 24 13:21:43 raspberrypi dockerd[3594]: time="2021-08-24T12:21:43.308973096+01:00" level=info msg="ignoring event" container=bc67e1548633043a2a8930096cbf07cb9c45f95c03c96da945530fefc344a663 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
Aug 24 13:22:11 raspberrypi dockerd[3594]: time="2021-08-24T12:22:11.998409815+01:00" level=info msg="ignoring event" container=fe6b9f7ee8e43a8894aa7f84ba40d0eb2de2d584228f2125ec3269c8542b3642 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"
Aug 24 13:23:12 raspberrypi dockerd[3594]: time="2021-08-24T12:23:12.027375808+01:00" level=info msg="Layer sha256:5424ae6913d0bae9de30f5df668fe5ff3221b9c9d48ef964729107428d1440d7 cleaned up"
Aug 24 13:23:16 raspberrypi dockerd[3594]: time="2021-08-24T12:23:16.185801188+01:00" level=info msg="ignoring event" container=8df1670ce7ff182911d89f10daadd3d99c5c0c2862fecb5f7a3f4d6c36278113 module=libcontainerd namespace=moby topic=/tasks/delete type="*events.TaskDelete"

The “ignoring event”-messages appear, when I attempt to start the container.

5. What I already tried:

As I already wanted to reinstall everything, I started from scratch. The docker deamon seems to be working, docker run hello-world runs without problems.

6. Links to relevant resources:

When running caddy-docker-proxy, you need to mount the Docker socket as a volume, so that CDP can talk to Docker. Please review the readme on the CDP repo for details.

Also, it’s not really useful to use CDP without other containers in the same network. You should probably be using docker-compose instead of directly using docker run.

What are you trying to do exactly? If this is your first time using Docker, don’t use CDP yet, it’s very much an advanced tool. Just use the regular Caddy mode instead.

1 Like

Ah thanks for that hint, overlooked that, as it is only mentioned in the docker-compose and testing section…

Now I used the command

docker run -d -p 80:80 -p 443:443 --network caddy -v /var/run/docker.sock:/var/run/docker.sock -v caddy_data:/data --restart unless-stopped caddy:latest

and it seems to be working…

I’m trying to run a few containers such as Jellyfin and Collabora, might be a bit overkill but I liked that I can specify the caddy dirctives directly in the docker-compose file… Anyways, it seems to be working now…

Thanks for your help!

1 Like

In that case, put this service in your docker-compose file as well, instead of doing docker run separately!

1 Like

This topic was automatically closed after 30 days. New replies are no longer allowed.