CentOS7 docker開啟tcp端口並進行客戶端遠程連接


#docker版本:18.09.0,最好保證客戶端端口和服務端端口相同

[root@Centos7 ~]# dockerd-ce -v
Docker version 18.09.0, build 4d60db4

 

網絡環境概述

server:192.168.100.7:2375  



client:192.168.100.8

 

 

#docker默認只提供本地unix,sock文件的連接方式,讓docker能夠監聽tcp端口還需要進行一些配置。

1.跳轉docker啟動文件,定義啟動時執行的參數。

#dockerd -H 參數指定docker應用程序監聽方式。當然,socket文件位置,2375端口都可以自行更改,socket文件位置更改的話,使用docker命令時也需要調整一些參數,連接時會有說明。

[root@server system]# cat /lib/systemd/system/docker.service   |grep "ExecStart" --color
ExecStart=/usr/bin/dockerd  -H unix:///var/run/docker.sock -H tcp://0.0.0.0:2375

 

2.調整配置后重啟docker服務,並觀察端口是否監聽

[root@server ~]# systemctl  restart docker
[root@server ~]# ss -lt  |grep 2375
LISTEN     0      128       :::2375                    :::*     

 

3.telnet服務端2375端口測試

[root@client ~]# telnet 192.168.100.7  2375
Trying 192.168.100.7...
Connected to 192.168.100.7.
Escape character is '^]'.
^]
telnet> quit

#如果telnet不通,可能是server端防火牆存在限制,添加下方規則后在測試連接。

[root@server ~]# iptables -I INPUT -ptcp --dport 2375 -j ACCEPT

 

 

 

#在client端連接服務端並執行命令

1.tcp連接

#你在使用docker連接時,可能會遇到下面問題:first path segment in URL cannot contain colon

#ps 為在server端執行的命令

[root@client ~]# docker -H 192.168.100.7:2375  ps 
parse 192.168.100.7:2375: first path segment in URL cannot contain colon

#將上面命令更改為下面命令即可。

[root@client ~]# docker -H tcp://192.168.100.7:2375  ps 
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 

2.unix socket文件連接。

#同理,如果你更改了sock文件的位置,通過本機的socket文件連接時也要指定socket文件位置。

[root@server ~]# docker -H unix:///var/run/docker.sock  ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM