前言
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节点了。