国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > 幫助中心 > 正文

Docker Compose 網(wǎng)絡(luò)設(shè)置詳解

2024-07-09 22:40:56
字體:
供稿:網(wǎng)友

基本概念

默認(rèn)情況下,Compose會(huì)為我們的應(yīng)用創(chuàng)建一個(gè)網(wǎng)絡(luò),服務(wù)的每個(gè)容器都會(huì)加入該網(wǎng)絡(luò)中。這樣,容器就可被該網(wǎng)絡(luò)中的其他容器訪問,不僅如此,該容器還能以服務(wù)名稱作為hostname被其他容器訪問。

默認(rèn)情況下,應(yīng)用程序的網(wǎng)絡(luò)名稱基于Compose的工程名稱,而項(xiàng)目名稱基于docker-compose.yml所在目錄的名稱。如需修改工程名稱,可使用--project-name標(biāo)識(shí)或COMPOSE_PORJECT_NAME環(huán)境變量。

舉個(gè)例子,假如一個(gè)應(yīng)用程序在名為myapp的目錄中,并且docker-compose.yml如下所示:version: '2'

services: web: build: . ports:  - "8000:8000" db: image: postgres

當(dāng)我們運(yùn)行docker-compose up時(shí),將會(huì)執(zhí)行以下幾步:

創(chuàng)建一個(gè)名為myapp_default的網(wǎng)絡(luò); 使用web服務(wù)的配置創(chuàng)建容器,它以“web”這個(gè)名稱加入網(wǎng)絡(luò)myapp_default; 使用db服務(wù)的配置創(chuàng)建容器,它以“db”這個(gè)名稱加入網(wǎng)絡(luò)myapp_default。

容器間可使用服務(wù)名稱(web或db)作為hostname相互訪問。例如,web這個(gè)服務(wù)可使用postgres://db:5432 訪問db容器。

更新容器

當(dāng)服務(wù)的配置發(fā)生更改時(shí),可使用docker-compose up命令更新配置。

此時(shí),Compose會(huì)刪除舊容器并創(chuàng)建新容器。新容器會(huì)以不同的IP地址加入網(wǎng)絡(luò),名稱保持不變。任何指向舊容器的連接都會(huì)被關(guān)閉,容器會(huì)重新找到新容器并連接上去。links前文講過,默認(rèn)情況下,服務(wù)之間可使用服務(wù)名稱相互訪問。

links

允許我們定義一個(gè)別名,從而使用該別名訪問其他服務(wù)。舉個(gè)例子:version: '2'

services: web: build: . links:  - "db:database" db: image: postgres

這樣web服務(wù)就可使用db或database作為hostname訪問db服務(wù)了。

指定自定義網(wǎng)絡(luò)

一些場景下,默認(rèn)的網(wǎng)絡(luò)配置滿足不了我們的需求,此時(shí)我們可使用networks命令自定義網(wǎng)絡(luò)。networks命令允許我們創(chuàng)建更加復(fù)雜的網(wǎng)絡(luò)拓?fù)洳⒅付ㄗ远x網(wǎng)絡(luò)驅(qū)動(dòng)和選項(xiàng)。不僅如此,我們還可使用networks將服務(wù)連接到不是由Compose管理的、外部創(chuàng)建的網(wǎng)絡(luò)。

如下,我們在其中定義了兩個(gè)自定義網(wǎng)絡(luò)。version: '2'

services: proxy: build: ./proxy networks:  - front app: build: ./app networks:  - front  - back db: image: postgres networks:  - backnetworks: front: # Use a custom driver driver: custom-driver-1 back: # Use a custom driver which takes special options driver: custom-driver-2 driver_opts:  foo: "1"  bar: "2"

其中,proxy服務(wù)與db服務(wù)隔離,兩者分別使用自己的網(wǎng)絡(luò);app服務(wù)可與兩者通信。

由本例不難發(fā)現(xiàn),使用networks命令,即可方便實(shí)現(xiàn)服務(wù)間的網(wǎng)絡(luò)隔離與連接。

配置默認(rèn)網(wǎng)絡(luò)

除自定義網(wǎng)絡(luò)外,我們也可為默認(rèn)網(wǎng)絡(luò)自定義配置。version: '2'

services: web: build: . ports:  - "8000:8000" db: image: postgresnetworks: default: # Use a custom driver driver: custom-driver-1

這樣,就可為該應(yīng)用指定自定義的網(wǎng)絡(luò)驅(qū)動(dòng)。

使用已存在的網(wǎng)絡(luò)

一些場景下,我們并不需要?jiǎng)?chuàng)建新的網(wǎng)絡(luò),而只需加入已存在的網(wǎng)絡(luò),此時(shí)可使用external選項(xiàng)。示例:

networks: default: external:  name: my-pre-existing-network 

Docker Compose 鏈接外部容器的幾種方式

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 通化市| 金乡县| 邹城市| 岫岩| 西藏| 腾冲县| 聂拉木县| 安丘市| 田林县| 涞水县| 育儿| 子洲县| 维西| 江孜县| 古田县| 邯郸市| 遵义县| 中西区| 微山县| 道孚县| 恩平市| 新竹县| 宁阳县| 工布江达县| 古蔺县| 翁牛特旗| 甘南县| 安阳市| 克拉玛依市| 常山县| 浙江省| 慈利县| 巫溪县| 益阳市| 乌兰浩特市| 土默特右旗| 临西县| 古丈县| 陆丰市| 婺源县| 博兴县|