資料捲及容器連線

2021-10-13 17:13:48 字數 2080 閱讀 7499

應用在容器中執行,總會用到或者產生一些資料,那麼這些資料是如何儲存的呢?外部又是如何使用這些資料的呢?本文包含以下內容:

作為乙個寄宿在宿主主機上的容器,我們要想辦法讓外部網路能夠訪問到它,這樣才能夠使用其提供的服務。當docker啟動時,它會在宿主主機上建立乙個名為docker0的虛擬網路介面。通過ifconfig命令,可以看到本機的網路介面情況:

可以看到,在宿主主機上有乙個名為docker0的網路介面,其位址是172.17.42.1,這是docker預設分配的位址。

當在docker中執行網路應用時,我們需要在外部訪問docker中執行的應用,這時需要通過-p或-p引數來指定埠對映。通過埠對映來實現埠暴露是容器對外提供服務的基礎方法。

(1) -p(大寫):使用-p引數,docker會在宿主主機上隨機為應用分配乙個49000~49900內的未被使用的埠,並將其對映到容器開放的網路埠。

# 搜尋映象

# 啟動映象

# 檢視容器

有了這個埠對映,我們就可以通過web瀏覽器來訪問。

我們可以用docker logs命令來檢視日誌輸出:

(2) -p(小寫):它可以指定宿主主機上的埠對映到容器內部指定的開放埠,格式有如下3種:

① hostport:containerport

當使用這種格式時,宿主主機中的所有網路介面都會被繫結。例如,我們想把宿主主機中的所有網路介面的80埠對映到容器的5000埠:

可以發現,繫結失敗,提示80埠已被使用。通過netstat命令可以檢視占用的程式。我們重新指定,把繫結換成和容器內部埠一樣的5000,直到成功。

我們可以使用docker ps命令檢視正在執行的容器的具體情況外,也可以使用docker port命令檢視乙個容器的埠:

當容器暴露多個埠的時候,我們可以對每個埠一一進行對映。

例如,我們想將宿主主機上的5000埠和容器內的5000埠對映,4000埠和容器內的80埠對映,具體為:

成功返回後,使用docker ps命令檢視對映詳情:

可以看到,4000埠和80埠對映,5000埠和容器內的5000埠對映。

可以看到埠對映、網橋、閘道器、ip以及實體地址等資訊。

此外,也可以直接使用docker inspect命令找到相應的字段,操作為:

得到的輸出如下:

這種json形式的資料展示層次相對清晰,更為易讀。但直接使用docker inspect命令就意味著所有資訊都將列出,所以兩種方式各有所長和不足。

網路可達。

資料卷容器

多個mysql同步資料 啟動3個容器,通過我們剛才自己寫的映象啟動 測試 可以刪除docker01,檢視一下docker02和docker03是否可以訪問這個檔案 測試依舊可以訪問 因為容器之間的資料其實是乙個雙向拷貝的概念 多個mysql實現資料共享 docker run d p 3310 330...

資料卷容器

容器間資料同步 啟動3個容器,通過我們剛才自己構建的映象啟動。docker images docker run it name docker01 lwemwu centosctrl p q退出容器 繼續執行 在docker01中增加檔案docker01,到docker02檢視資料同步。進入docke...

資料卷容器

如果使用者需要在多個容器之間共享一些持續更新的資料,最簡單的方式是使用資料卷容器。資料卷容器也是乙個容器,但是它的目的是專門提供資料卷給其他容器掛載 1.新建資料卷容器 docker run di name db data v db data centos 7注 v 後面接的共享資料真實存放路徑,把...