最近在工作時(shí)遇到一個(gè)問題,docker容器無法訪問宿主機(jī)的redis,telent6379端口不通。
經(jīng)排查發(fā)現(xiàn),該服務(wù)器啟用了防火墻,防火墻把6379的端口的訪問授權(quán)給docker0網(wǎng)卡訪問即可。
操作如下:
firewall-cmd --permanent --zone=trusted --change-interface=docker0
firewall-cmd --reload
補(bǔ)充知識:docker 啟動mysql 容器出錯(cuò)Ports are not available: listen tcp 0.0.0.0:3306
錯(cuò)誤截圖如下
該錯(cuò)誤是由于本地3306端口被占用,很可能是本地已經(jīng)安裝了mysql,mysql服務(wù)已經(jīng)啟動導(dǎo)致的
解決辦法一:打開服務(wù),找到mysql服務(wù),將其停止,或者更換端口
然后再執(zhí)行以下命令
docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -itd mysql:latest /bin/bash
如圖,則啟動成功
解決辦法二:更換端口映射
docker run --name MYSQL -e MYSQL_ROOT_PASSWORD=123456 -p 3309:3306 -itd mysql:latest /bin/bash
說明:
-p 3309:3306:-p 宿主機(jī)端口:容器端口,即將宿主機(jī)3309端口映射到容器的3306端口,在宿主機(jī)登錄容器數(shù)據(jù)庫的時(shí)候,使用宿主機(jī)端口,如3309
以上這篇docker容器無法訪問宿主機(jī)端口的解決就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。