啟動容器時,如果不知道對應引數,在容器外部是無法通過網路訪問容器內部的。
可以通過-p或-p引數指定埠對映。
使用-p時,docker會隨機對映乙個49000~49900的埠到容器內部開放的埠。
-p會對映到指定的埠,支援的格式:
主機埠:容器埠
主機埠:容器埠 格式將本地埠對映到容器埠的命令如下:
[plain]view plain
copy
docker run -d -p 3306:3306 mysql
此時缺省會幫頂本地所有介面上的位址,可以多次使用-p幫頂多個埠。
[plain]view plain
copy
docker run -d -p 127.0.0.1:3306:3306 mysql
[plain]view plain
copy
doccker run -d -p 127.0.0.1::3306 mysql
也可以使用udp來標記udp埠:
[plain]view plain
copy
doccker run -d -p 127.0.0.1:3386:3386/udp 某個映象
使用docker port命令檢視埠對映配置:
[plain]view plain
copy
docker port 容器id 3306
[plain]view plain
copy
docker inspect 容器id
然後會輸出一大堆資訊。
容器的連線系統是除了埠對映外另一種可以與容器中應用進行互動的方式。
它會在源和接收容器之間建立乙個隧道,接收容器可以看到源容器指定的資訊。
連線系統根據容器的名稱執行,所以需要自定義乙個較為簡單容易區分的容器名。
自定義命名使用--name引數,這個在之前的文章中已經遇到過了:
[plain]view plain
copy
docker run -d -p --name db mysql
容器的命名必須是唯一的。
使用--link引數可以讓容器間建立安全的連線進行互動。
下面是乙個示例:
[plain]view plain
copy
docker run -d --name db training/postgres
[plain]view plain
copy
此時db容器和web容器加你互聯關係。
--link引數:--link name:alias,name是要連線的容器的名字,alias是這個連線的別名。
可以使用docker ps檢視容器資訊,其中names列就能看出互聯的狀態。
docker在兩個互聯的容器之間建立了乙個安全隧道,不需要吧他們的埠對映到宿主主機上,也可以避免埠的暴露。
docker通過兩種方式公開連線資訊:
使用env命令檢視剛剛的web容器的環境變數:
[plain]view plain
copy
...其中db_開頭的環境變數是供web容器連線db容器使用,字首採用大寫的連線別名。
除了環境變數,docker還新增host資訊到父容器的/etc/hosts檔案。其中web容器會以自己的id作為預設主機名,db容器以db作為主機名。
比如多個web到db容器的情況,可以鏈結多個子容器到父容器上。
docker通過埠對映和容器互聯,優雅的提供了網路配置功能。
docker 基礎教程
docker優點 docker容器,一次構建,到處執行。構建之後,在任何支援docker的地方都能把它run起來。虛擬機器 作業系統完全隔離。虛擬機器之下還有虛擬機器管理程式。docker 沒有虛擬機器作業系統這層。主要是基於linux核心對容器的實現。1 yum install docker io...
Docker基礎教程
什麼是docker docker 是世界領先的軟體容器平台。開發人員利用 docker 可以消除協作編碼時 在我的機器上可正常工作 的問題。運維人員利用 docker 可以在隔離容器中並行執行和管理應用,獲得更好的計算密度。企業利用 docker 可以構建敏捷的軟體交付管道,以更快的速度 更高的安全...
Docker基礎教程 容器
容器是docker的另乙個核心概念。一般來說,映象的乙個執行例項就是容器,容器提供了乙個可寫的檔案層。docker的容器非常輕量級,建立和刪除都很容易。新建容器使用docker create命令 plain view plain copy docker create it ubuntu latest...