Docker基礎教程——網路基礎配置__Docker

來源:互聯網
上載者:User

原文出自:http://blog.csdn.net/anxpp/article/details/52495295

    我們使用Docker發布的組件,通常都離不開網路的,下面介紹Docker的網路基礎配置。 1、連接埠映射     從外部存取容器應用

    啟動容器時,如果不知道對應參數,在容器外部是無法通過網路訪問容器內部的。

    可以通過-p或-P參數指定連接埠映射。

    使用-P時,Docker會隨機映射一個49000~49900的連接埠到容器內部開放的連接埠。

    -p會映射到指定的連接埠,支援的格式:

ip地址:主機連接埠:容器連接埠 ip地址::容器連接埠 主機連接埠:容器連接埠

    映射所有介面地址

    主機連接埠:容器連接埠 格式將本地連接埠映射到容器連接埠的命令如下:

docker run -d -p 3306:3306 mysql
    此時預設會幫頂本地所有介面上的地址,可以多次使用-p幫頂多個連接埠。

    映射到指定地址的指定連接埠

    ip地址:主機連接埠:容器連接埠 格式的參數幾乎與上面的差不多,不過多限制了地址,比如需要指定特定的地址的訪問(如127.0.0.1):

docker run -d -p 127.0.0.1:3306:3306 mysql

    映射到指定地址的任意連接埠

    ip地址::容器連接埠 格式的參數,可以綁定localhost的任意連接埠到容器的指定連接埠上,本地主機會自動分配一個連接埠:

doccker run -d -p 127.0.0.1::3306 mysql
    也可以使用udp來標記udp連接埠:

doccker run -d -p 127.0.0.1:3386:3386/udp 某個鏡像

    查看連接埠映射配置

    使用docker port命令查看連接埠映射配置:

 docker port 容器ID 3306
    容器有自己的內部往來和IP地址:

docker inspect 容器ID
    然後會輸出一大堆資訊。

2、容器互聯     容器的串連系統是除了連接埠映射外另一種可以與容器中應用進行互動的方式。

    它會在源和接收容器之間建立一個隧道,接收容器可以看到源容器指定的資訊。

    自訂容器名     串連系統根據容器的名稱執行,所以需要自訂一個較為簡單容易區分的容器名。

    自訂命名使用--name參數,這個在之前的文章中已經遇到過了:

docker run -d -p --name db mysql
    容器的命名必須是唯一的。

    執行docker run時,如果加上--rm參數,容器在終止後悔立即被刪除,但是不能與-d參數一同使用。

    容器互聯     使用--link參數可以讓容器間建立安全的串連進行互動。

    下面是一個樣本:

首先建立一個資料庫的容器:

docker run -d --name db training/postgres

然後建立web容器:

docker run -d -P --name web --link db:db training/webapp python app.py
    此時db容器和web容器加你互聯關係。

    --link參數:--link name:alias,name是要串連的容器的名字,alias是這個串連的別名。

    可以使用docker ps查看容器資訊,其中names列就能看出互聯的狀態。


    docker在兩個互聯的容器之間建立了一個安全隧道,不需要吧他們的連接埠映射到宿主主機上,也可以避免連接埠的暴露。

    Docker通過兩種方式公開串連資訊:

環境變數 更新/etc/hosts檔案

    使用env命令查看剛剛的web容器的環境變數:

docker run --rm --name web2 --link db:db training/webapp env
    ...

    其中DB_開頭的環境變數是供web容器串連db容器使用,首碼採用大寫的串連別名。

    除了環境變數,Docker還添加host資訊到父容器的/etc/hosts檔案。其中web容器會以自己的ID作為預設主控件名,db容器以db作為主機名稱。

    比如多個web到db容器的情況,可以連結多個子容器到父容器上。


小結     Docker通過連接埠映射和容器互聯,優雅的提供了網路設定功能。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.