docker學(xué)習(xí)第八天 docker 基礎(chǔ)之網(wǎng)絡(luò)配置

大量的互聯(lián)網(wǎng)應(yīng)用服務(wù)包括多個(gè)服務(wù)組件,這往往需要多個(gè)容器之間通過網(wǎng)絡(luò)通信進(jìn)行相互配合。
Docker目前提供了映射容器端口到宿主主機(jī)和容器互聯(lián)機(jī)制來為容器提供網(wǎng)絡(luò)服務(wù)
本章講解如何使用docker的網(wǎng)絡(luò)功能。包括使用端口映射機(jī)制來將容器內(nèi)應(yīng)用服務(wù)提供給外部網(wǎng)絡(luò),以及通過容器互聯(lián)系統(tǒng)讓多個(gè)容器之間進(jìn)行快捷的網(wǎng)絡(luò)通信。

1. 從外部訪問容器應(yīng)用

在啟動(dòng)容器的時(shí)候,如果不指定對(duì)應(yīng)參數(shù),在容器外部無法通過網(wǎng)絡(luò)訪問容器內(nèi)的應(yīng)用。需要通過 -p 參數(shù)來指定端口映射。當(dāng)使用 -p 標(biāo)記時(shí),docker 會(huì)隨機(jī)映射一個(gè)49000~49900 的端口到外部開放的網(wǎng)絡(luò)端口。

docker run -d -P training/webapp python app.py
docker ps -l

-p(小寫)這可以指定要映射的端口,并且在指定端口上可以綁定一個(gè)容器。格式

ip:hostPort:containerPort
ip::containerPort
hostport:containerPort
映射所有接口地址

使用hostPort:containerPort 格式將本地的5000端口映射到容器的5000端口

docker run -d -p 5000:5000 training/webapp python app.py

此時(shí)默認(rèn)會(huì)綁定本地所有接口上的所有地址。多次使用-p 可以綁定多個(gè)端口。

docker run -d -p 5000:5000 -p 3000:80 training/webapp python app.py
映射到指定地址的指定端口

可以使用 ip:hostPort:containerPort格式指定映射使用一個(gè)特定地址,比如localhost 地址127.0.0.1:

docker run -d -p 127.0.0.1:5000:5000 training/webapp python app.py
映射指定地址的任意端口

使用ip::containerPort板頂localhost的任意端口到容器的5000端口,本地主機(jī)會(huì)自動(dòng)分配一個(gè)端口。

docker run -d -p 127.0.0.1::5000 training/webapp python app.py

還可以使用udp來指定udp端口:

docker run -d -p 127.0.0.1:5000:5000/udp training/webapp python app.py
查看銀色端口配置

使用docker port 來查看當(dāng)前映射的端口配置。也可以查看到綁定的地址:

docker port nostalgic_morse 5000
2. 容器互聯(lián)實(shí)現(xiàn)容器間通信

容器的連接(linking)系統(tǒng)是除了端口映射外領(lǐng)一種可以與容器中應(yīng)用進(jìn)行交互的方式。它會(huì)在源和接受容器之間創(chuàng)建一個(gè)隧道,接收容器可以看到源容器指定的信息。

自定義容器命名

連接系統(tǒng)一句容器的名稱來執(zhí)行。因此。首要自頂一個(gè)好幾的容器命名。
雖然當(dāng)創(chuàng)建容器的時(shí)候,系統(tǒng)默認(rèn)會(huì)分配一個(gè)名字,但自定義容器有兩個(gè)好處:1.好記,2作為有用的參考點(diǎn)。

docker run -d -P --name web training/webapp python app.py

使用docker ps 來驗(yàn)證設(shè)定的命名:

docker ps -l

也可以使用docker inspect 來查看容器的名字:

docker inspect -f "{{.Name}}" aed84ee21bde

在執(zhí)行docker run 的時(shí)候如果添加--rm標(biāo)記,則容器在終止后會(huì)立即刪除,注意 --rm 和-d 參數(shù)不能同時(shí)使用。

容器互聯(lián)

使用 --link 參數(shù)可以讓容器之間安全的進(jìn)行交互。
下面先創(chuàng)建一個(gè)新的數(shù)據(jù)庫容器;

docker run -d --name db training/postgres

刪除之前的web容器:

docker rm -f web

然后創(chuàng)建一個(gè)新的web容器,并將它連接到db容器

docker run -d -P --name web --link db:db training/webapp python app.py

此時(shí),db 容器和web容器建立互聯(lián)關(guān)系。
--link 參數(shù)的格式: --link name:alias,其中name是要連接的容器的名稱,alias 是這個(gè)鏈接的別名。
使用 docker ps 查看容器的連接

docker ps

本章信息摘自《Docker技術(shù)入門與實(shí)戰(zhàn)》

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 轉(zhuǎn)載自 http://blog.opskumu.com/docker.html 一、Docker 簡介 Docke...
    極客圈閱讀 10,764評(píng)論 0 120
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,694評(píng)論 19 139
  • 0x01 核心概念 Docker鏡像類似于虛擬機(jī)鏡像,可以理解為一個(gè)面向Docker引擎的只讀模板,包含了文件系統(tǒng)...
    閑云逸心閱讀 4,980評(píng)論 0 9
  • docker提供了映射容器端口到宿主主機(jī)和容器互聯(lián)機(jī)制來為容器提供網(wǎng)絡(luò)服務(wù)。本節(jié)講解docker的網(wǎng)絡(luò)功能,包括使...
    八目朱勇銘閱讀 705評(píng)論 0 1
  • 你不帥,甚至還有點(diǎn)胖,身高與體重差不多一比一的,沒有帥氣的臉龐,沒有過高的學(xué)歷,沒有突出的特色,卻說不出什么原因,...
    淺淺微笑的時(shí)光閱讀 411評(píng)論 2 2

友情鏈接更多精彩內(nèi)容