Docker除了通過網(wǎng)絡(luò)訪問外,還提供了兩個很方便的功能來滿足服務(wù)訪問的基本需求:一個是允許映射容器內(nèi)應(yīng)用的服務(wù)端口到本地宿主主機(jī)魔种;另一個是互聯(lián)機(jī)制實現(xiàn)多個容器間通過容器名來快速訪問。本章將分別講解這兩個很實用的功能柒爵。
1. 端口映射實現(xiàn)容器訪問
1.1 從外部訪問容器應(yīng)用
在啟動容器的時候根悼,如果不指定對應(yīng)參數(shù),在容器外部是無法通過網(wǎng)絡(luò)來訪問容器內(nèi)的網(wǎng)絡(luò)應(yīng)用和服務(wù)的格了。當(dāng)容器中運行一些網(wǎng)絡(luò)應(yīng)用看铆,要讓外部訪問這些應(yīng)用時,可以通過-P或-p參數(shù)來指定端口映射盛末。當(dāng)使用-P(大寫的)標(biāo)記時弹惦,Docker會隨機(jī)映射一個49000~49900的端口到內(nèi)部容器開放的網(wǎng)絡(luò)端口:
1.2 映射所有接口地址
1.3 映射到指定地址的指定端口
1.4 映射到指定地址的任意端口
1.5 查看映射端口配置
2. 互聯(lián)機(jī)制實現(xiàn)便捷互訪
容器的互聯(lián)(linking)是一種讓多個容器中的應(yīng)用進(jìn)行快速交互的方式。它會在源和接收容器之間創(chuàng)建連接關(guān)系悄但,接收容器可以通過容器名快速訪問到源容器棠隐,而不用指定具體的IP地址。
2.1 自定義容器命名
連接系統(tǒng)依據(jù)容器的名稱來執(zhí)行檐嚣。因此助泽,首先需要自定義一個好記的容器命名。雖然當(dāng)創(chuàng)建容器的時候嚎京,系統(tǒng)默認(rèn)會分配一個名字嗡贺,但自定義命名容器有兩個好處:
- 自定義的命名,比較好記鞍帝,比如一個Web應(yīng)用容器我們可以給它起名叫web诫睬,一目了然;
- 當(dāng)要連接其他容器時候(即便重啟)帕涌,也可以使用容器名而不用改變摄凡,比如連接web容器到db容器续徽。
在執(zhí)行docker [container] run的時候如果添加--rm標(biāo)記,則容器在終止后會立刻刪除架谎。注意炸宵,--rm和-d參數(shù)不能同時使用。