思維導圖:
image-20200914092631909
image-20200910205958296
容器裡面執行著應用,外部需要訪問互動,涉及到容器裡面的埠和宿主機之間的對映;
通過埠對映,我們就可以從外部訪問宿主機的指定埠來訪問到容器的應用;
這裡我們以tomcat為例子,我們看看如何在外部通過docker埠對映來訪問宿主主機裡面的tomca。
image-20200912202436866
image-20200912202636902
建立啟動tomcat容器:docker run --name tomcat1 -d tomcat :latest
, 其中-d
是表示後台執行容器,tomcat1
是容器名稱,tomcat :latest
是註明版本號
image-20200912203112307
檢視正在執行的容器:docker ps
image-20200912203427753
對映命令:docker run --name 容器名稱 -d -p (伺服器端口):(docker埠) image-name
--name
:自定義容器名,不指定時,docker會自動生成乙個名稱
-d
:表示後台執行容器
伺服器端口
:這裡的tomcat埠是8080
docker埠
:我們任意設定乙個埠號,但是前提是這個埠號不能被占用
image-name
:指定執行的映象名稱以及tag,這裡也可以用映象id都可以的
這個時候我們的埠以及搭建好了,我們在瀏覽器中輸入伺服器ip位址(檢視命令:ip addr show
)再加上docker埠就可以訪問了。
image-20200912210507110
結果,就這??
這個問題相信剛開始搭建的時候應該都遇到過,我查了一下原因如下:
image-20200912214749147
解決辦法:
我們先進入到tomcat的目錄:
image-20200913083852978
image-20200913084229108
image-20200913085143707
我們先來看看效果:
image-20200913085306555
上述執行成功之後,也存在一定問題,如果不退當前容器的情況下,執行埠埠對映的tomcat是可以訪問到首頁的; 但是,我們只是在這個容器中修改了 命名,我們重啟了這個容器,修改的命名就會恢復。
為了防止恢復問題,我們自己把修改後的映象對映成新的映象
命令:docker commit -a=「作者名」 -m=「備註」 執行時容器id 新映象名稱
然後我們就可以用新映象來重新訪問對映埠的應用了
看完這篇TCP,和面試官扯皮就沒問題了
無論什麼技術崗位,計算機網路幾乎是每場面試的必問內容,在面試 現的次數非常非常多,所以我面試之前也有所準備。看到csdn上介紹http的部落格比較多,tcp的比較少,於是今天結合面試問題先詳細講一講tcp。這部分之所以放在最前面,因為太重要!太重要!太重要了!源埠 目標埠 計算機上的程序要和其他程序...
Docker 埠對映問題解決
在操作docker容器時發現了其乙個埠對映的bug,具體表現為 開啟容器時做了埠對映80 8080,即宿主機的80埠對映到容器內部的8080jboss埠。一開始測試也沒有什麼問題,都可以聯通,但經過幾次重啟之後,突然發現無法訪問到jboss了。及容器內部環境沒有發生過變化,只能從宿主機外部環境考慮了...
docker 埠對映 及外部無法訪問問題
docker容器內提供服務並監聽8888埠,要使外部能夠訪問,需要做埠對映。docker run it rm p 8888 8888 server v1此時出現問題,在虛機a上部署後,在a內能夠訪問8888埠服務,但是在b卻不能訪問。這應該是由於請求被攔截。一 檢視firewall cmd stat...