1

docker run 似乎没有正确处理套接字的符号链接。

问题:

我正在尝试使用无根 docker。连接到 docker 的套接字是 /run/user/1000/docker.sock。

但我需要使用 docker-compose 文件,其中运行带有卷映射的 traefik 容器,以便从容器内部访问 /var/run/docker.sock。我无法修改这个 docker-compose 文件。

为了使它工作,我尝试做一个符号链接 /var/run/docker.sock > /run/user/1000/docker.socket。它在我的主机上运行良好,我可以使用这个套接字与无根 docker 通信,但是在运行容器时,/var/run/docker.sock 文件不是一个套接字,而是一个目录。

如何重现:

要重现 docker run 的问题:

sudo ln -s /run/user/1000/docker.sock /var/run/docker.sock
sudo docker run -v /run/user/1000/docker.sock:/var/run/docker-user.sock -v /var/run/docker.sock:/var/run/docker.sock -it traefik /bin/sh

在 traefik 容器内:

/ # ls -al /var/run/
total 0
drwxr-xr-x    1 root     root            54 Dec 13 17:23 .
drwxr-xr-x    1 root     root           134 Dec 13 17:23 ..
srw-rw---T    1 root     974              0 Dec 13 15:06 docker-user.sock
drwxr-xr-x    2 root     root            40 Dec 13 15:09 docker.sock

谢谢您的帮助 :)

4

0 回答 0