溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

docker 中network如何使用

發(fā)布時間:2021-07-30 15:20:46 來源:億速云 閱讀:314 作者:Leah 欄目:大數(shù)據(jù)

docker 中network如何使用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1 映射主機(jī)端口

映射主機(jī)端口,也就是將docker容器提供服務(wù)的端口映射到主機(jī)的某一個端口,消費(fèi)者直接訪問主機(jī)即可。

docker run --name docker-nginx 
-d 
-p 8080:80 
-v /root/service/nginx/nginx.conf:/etc/nginx/nginx.conf 
-v /root/service/nginx/conf.d:/etc/nginx/conf.d 
-v /root/service/nginx/html:/usr/share/nginx/html 
nginx

使用以上命令運(yùn)行容器的時候,將容器docker-nginx的80端口映射到了主機(jī)的8080端口,其中 -p 8080:80 就是指定端口的映射關(guān)系。 消費(fèi)者可以直接訪問主機(jī)的8080端口,此外,還必須開啟主機(jī)防火墻的8080端口。(防火墻的設(shè)置方法在上篇文章已經(jīng)介紹到了)

然而,在Docker Hub的大多常用的鏡像實例說明中,基本都不會使用這種方式來運(yùn)行一個容器,因為在公網(wǎng)中,多開一個端口,就意味著主機(jī)在網(wǎng)絡(luò)世界中多了一個弱點(diǎn)。我主機(jī)上的服務(wù)就因為防火墻未關(guān)閉端口被攻擊過。所以,使用docker network組建容器之間的網(wǎng)絡(luò)是很有必要的。

2 docker network 組建容器之間的網(wǎng)絡(luò)

在docker中,docker network 是主要是用做容器之間的通信,即組建容器之間的局域網(wǎng)。其實使用 -link 可以實現(xiàn)容器之間簡單的網(wǎng)絡(luò),但是容器較多而且通信關(guān)系較為復(fù)雜時,使用network就更又條理。

docker network 即在容器之間組建一個局域網(wǎng),然后各個容器可以加入這個網(wǎng)絡(luò),之后容器之間的訪問就如同局域網(wǎng)中主機(jī)之間的訪問。

創(chuàng)建一個network

docker network create docker-network  // docker-network是局域網(wǎng)的名字,自定義 
docker network ls  // 查看已有的network

將容器連接到network

// 運(yùn)行新的容器,并加入到docker-network網(wǎng)絡(luò)中
// --network 表示這個容器要連接到的網(wǎng)絡(luò)
// --network-alias 表示這個容器在此網(wǎng)絡(luò)中的名稱,也可以使用--ip來指定容器的ip
docker run --name docker-nginx -d 
--network docker-network 
--network-alias nginx-network nginx

// 已經(jīng)在運(yùn)行的容器加入網(wǎng)絡(luò)使用以下命令
// docker network connect [OPTIONS] NETWORK CONTAINER
docker network connect --alias nginx-network docker-network docker-nginx
docker network connect --alias wp-network docker-network docker-wordpress

容器之間的訪問

經(jīng)過以上命令,我們已經(jīng)創(chuàng)建了一個名為 docker-network 的網(wǎng)絡(luò),并且有兩個容器加入了這個網(wǎng)絡(luò),在網(wǎng)絡(luò)中的名稱分別為:nginx-network 和 wp-network?,F(xiàn)在需要使用 nginx 作為反向代理來訪問 wordpress(wp-network),可直接修改 nginx 的配置文件,設(shè)置代理的主機(jī)地址為 wp-network 即可,( wp-network 為容器在network中的名稱)如下:

location / {
    proxy_pass http://wp-network:80/;
}
// 注意:這里的80端口為wordpress鏡像暴露的端口,(即DockerFile中expose的端口),
// 并不是映射到主機(jī)的端口。(其實也沒必要映射端口了)

關(guān)于docker 中network如何使用問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI