Iptables
Docker - 無法訪問此站點
我安裝了一個 tomcat 映像並執行了一個容器:
[root@MY_IP ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES e624bb55878f tomcat:7 "catalina.sh run" 43 minutes ago Up 43 minutes 0.0.0.0:32768->8080/tcp pensive_leakey
日誌顯示tomcat伺服器正在執行,但是當我通過瀏覽器檢查時它告訴我:
This site can’t be reached : MY_IP:32768 MY_IP refused to connect. ERR_CONNECTION_REFUSED
所以 MY_IP:32768 不起作用。我認為這是一個防火牆問題,所以我檢查了我的 iptables 並添加了一個 ligne:
[root@MY_IP ~]# iptables -L -n Chain INPUT (policy ACCEPT) target prot opt source destination ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:6666 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:32768 Chain FORWARD (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination
當我檢查 netstat 時,它看起來不錯:
[root@MY_IP ~]# netstat -tulpn Connexions Internet actives (seulement serveurs) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1375/mongod tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 1240/mysqld tcp 0 0 0.0.0.0:21 0.0.0.0:* LISTEN 1101/vsftpd tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 976/named tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1087/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1335/master tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 976/named tcp 0 0 :::32768 :::* LISTEN 13085/docker-proxy tcp 0 0 :::80 :::* LISTEN 1348/httpd tcp 0 0 ::1:53 :::* LISTEN 976/named tcp 0 0 :::22 :::* LISTEN 1087/sshd tcp 0 0 ::1:953 :::* LISTEN 976/named udp 0 0 127.0.0.1:53 0.0.0.0:* 976/named udp 0 0 ::1:53 :::* 976/named
但是我仍然有同樣的連接被拒絕的問題。我確保我重新啟動了服務 iptables。
我在這裡做錯了什麼?我正在執行 CentOS 版本 6.7(最終版)。謝謝
你確定tomcat本身正在監聽8080埠嗎?因為 docker 容器確實在偵聽埠 32768 並且該埠在防火牆中打開(實際上完全打開,因為策略是 ACCEPT 並且沒有 REJECT 或 DROP 規則),看來這可能是問題所在。
你可以驗證
docker exec -ti pensive_leakey ss -tln