王锐
发布于 2024-09-02 / 67 阅读
0
0

配置docker的套接字允许远程访问

要在 Ubuntu 下让局域网用户能够访问 /var/run/docker.sock,你可以通过将 Docker 的 Unix 套接字转发到 TCP 端口,从而允许局域网内的设备通过 TCP 连接访问 Docker。以下是实现这一目标的步骤:

安装socat

sudo apt-get update
sudo apt-get install socat

使用 socat 转发 Unix 套接字到 TCP 端口

使用 socat 将 Docker 的 Unix 套接字 /var/run/docker.sock 转发到一个 TCP 端口(例如 2375)。运行以下命令:

sudo socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock

这将使 Docker 的 Unix 套接字在 2375 端口上监听 TCP 连接。

  1. 创建system服务

  2. sudo nano /etc/systemd/system/docker-socket-proxy.service

    添加以下内容

[Unit]
Description=Docker Socket Proxy
After=network.target

[Service]
ExecStart=/usr/bin/socat TCP-LISTEN:2375,reuseaddr,fork UNIX-CONNECT:/var/run/docker.sock
Restart=always

[Install]
WantedBy=multi-user.target

重新加载并重启服务

sudo systemctl daemon-reload
sudo systemctl start docker-socket-proxy
sudo systemctl enable docker-socket-proxy

测试结果

docker -H tcp://<server-ip>:2375 info


评论