blog
blog copied to clipboard
Docker 在 Mac 下的 2375 端口问题
trafficstars
处于安全原因,Docker Mac 客户端并没有开启 2375 端口的配置,所以我们可以用 socat 来 fork 一个端口出来,详情见:
https://github.com/docker/for-mac/issues/770
使用如下命令创建:
docker run -it -d --name=socat \
-p 2375:2375 \
-v /var/run/docker.sock:/var/run/docker.sock \
bobrik/socat \
TCP4-LISTEN:2375,fork,reuseaddr UNIX-CONNECT:/var/run/docker.sock
然后我们可以通过如下两个办法验证:
$ sudo lsof -i:2375
或者:
$ docker -H tcp://localhost:2375 ps
为什么要开启 2375 端口?一般来说我们是用这个端口通过 Daemon 与 Docker 通信,常见于调用 Docker Rmote API
问题解决了, 用docker-compose相对来说方便一点。
docker-compose.yml内容如下:
version: "3.5"
services:
redis:
image: "alpine/socat"
container_name: socat
restart: "always"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock"
ports:
- "2375:2375"
command: "tcp-listen:2375,fork,reuseaddr unix-connect:/var/run/docker.sock"
networks:
default:
external:
name: my_network