[問題現象]
在Windows下使用docker啟動了一個jenkins,翻越了無數的坑,最后的啟動命令為
docker run --name jenkins -u root -p 8000:8000 -d -v /home/jenkins:/var/jenkins_home jenkins/jenkins
咋一看好像沒問題,通過docker logs jenkins也可以看到是啟動成功了
最后通過127.0.0.1:8000無法方程,提示拒絕連接127.0.0.1 拒絕了我們的連接請求。
經過搜索查閱資料,說是docker是在linux環境下運行的,Windows下啟動docker本質是會啟動一個虛擬機,在虛擬機上啟動docker,
所以,這里的ip,也就是宿主機的ip應該是啟動的這個虛擬機的ip,輸入宿主機的ip 192.168.99.100,仍然無效
[問題原因]
ip是正確,地址也是沒有輸錯的,防火牆也關了還是不行。最后才一次嘗試中發現綁定ip的時候 -p 38080:8080是可以
對此開始產生了懷疑,進行了研究
發現當我們-p 綁定的ip不是8080的時候,會出現8080沒有被映射的情況
以此猜測,jenkins在啟動服務的時候,是用的8080端口,如果我們不把宿主機的端口映射到8080,就無法進行訪問
即:jenkins啟動的時候,端口起的是8080,我們要把宿主機的端口隱射到8080
[解決辦法]
在啟動容器的時候,直接通過-p 映射到8080
docker run --name jenkins -u root -p 8000:8080 -d -v /home/jenkins:/var/jenkins_home jenkins/jenkins
通過docker ps 可以查看到8000已經映射到了8080
此時在瀏覽器輸入192.168.99.100:8000即可打開jenkins頁面