docker啟動redis端口映射錯誤問題解決


今天使用docker安裝redis,使用的時候出現了一些問題。第一次安裝好后,在虛擬機后台啟動了redis,然后在連接虛擬機的redis的時候怎么也連不上。出現這種情況我第一反應是防火牆沒有開啟所以我執行查看了一下防火牆的狀態。

systemctl status firewalld 

然后發現沒有開啟防火牆,於是我又開啟了防火牆。

systemctl start firewalld

然而連接還是有問題,一直連接不上。然后我查看了一下doker的進程狀態,發現redis是運行着的,但是端口映射沒有做映射(使用doker啟動的應用一定要做端口映射,否則外部無法訪問該應用端口)。

docker  ps

於是我又重新刪除該容器,重新啟動了一個容器,並做了端口映射。

docker run -p 6379:6379 --name myredis  -d registry.docker-cn.com/library/redis

但是問題來了,容器是創建了,然而缺一直啟動不起來,啟動容器會報下列問題。

docker: Error response from daemon: driver failed programming external connectivity on endpoint myredis (e189179ed97e6d940fe64c0c7c822beb430e5489c51c28d872aeabe95f1c60d0): (iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 6379 -j DNAT --to-destination 172.17.0.2:6379 ! -i docker0: iptables: No chain/target/match by that name.
(exit status 1)).

目前的解決方式是關閉docker,然后重新啟動,再用docker啟動redis重新 映射端口,redis容器終於正確啟動並且能夠被外部所訪問了。

systemctl stop docker
systemctl start docker
docker run -p 6379:6379 --name myredis -d registry.docker-cn.com/library/redis

 


免責聲明!

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



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