开启Docker的TCP通信端口方式
作者:inthirties
开启Docker的TCP通信端口
Docker Engine提供RestFul API, Docker Cli通过Restful API和Docker Daemon进行交互,默认情况下,docker cli通过unix通道文件和Daemon进程进行交互,也可以通过docker cli里的
- --host参数指定,需要通信的Docker远端机器进行交互
- --host参数指定,需要进行连接的Docker daemon的监听端口
默认情况下,Docker的socket tcp端口是没有打开的,只提供本地的unix的通道文件的通信方式。
今天给大家介绍的就是,如何打开Docker的socket通信方式。 在爱上开源之DockerUI系列视频里,给大家介绍DockerUI来进行Docker管理的时候也提到过,这样的启动方式。
修改启动文件
找到启动文件,修改启动文件的运行参数,使其支持TCP通信方式;Docker Daemon应用的方式不同,启动的途径也各不相同,
在Centos7或者以上的Docker环境里
在这个环境下,Docker是通过Systemclt里的服务进行启动的, 在这个环境下,我们就需要修改Docker的启动的service。
[root@CENTOS-01 ~]# systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; vendor preset: disabled) Active: active (running) since Fri 2022-03-25 05:30:16 CST; 3h 7min ago Docs: https://docs.docker.com Main PID: 315761 (dockerd) Tasks: 47 Memory: 75.8M CGroup: /system.slice/docker.service └─315761 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock -H tcp://0.0.0.0:2375
通过命令可以找到docker服务的启动文件路径: /usr/lib/systemd/system/docker.service
[root@CENTOS-01 ~]# vi /usr/lib/systemd/system/docker.service
如下加入
-H tcp://0.0.0.0:2375
重启服务
[root@CENTOS-01 ~]# systemctl daemon-reload [root@CENTOS-01 ~]# systemctl restart docker
其他系统
docker@boot2docker:~$ vi /etc/init.d/docker
开启DOCKER_REMOTE = yes
修改后,重新启动服务
docker@boot2docker:~$ /etc/init.d/docker restart
记得,开启TCP以后,记得把相关端口的访问防火墙开启。
注意:
通过上面的方法,就已经可以开启docker daemon的tcp通信端口进行通信, dockerUI也可以通过--endpoint的指定, 来访问远端的Docker节点了。
Docker TCP端口开放
CentOS7 通用版
cat > /etc/systemd/system/docker.service.d/tcp.conf <<EOF [Service] ExecStart= ExecStart=/usr/bin/dockerd -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375 EOF
注意: -H fd:// 仅Ubuntu可用,我就被这个坑了好久。
systemctl daemon-reload systemctl restart docker
验证
netstat -an | grep 2375
一切OK。
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。