Docker對映詳解,沒問題了!

2021-10-09 10:44:49 字數 1542 閱讀 2811

思維導圖:

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...