docker 中network如何使用,針對這個問題,這篇文章詳細(xì)介紹了相對應(yīng)的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項目網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元都安做網(wǎng)站,已為上家服務(wù),為都安各地企業(yè)和個人服務(wù),聯(lián)系電話:13518219792
映射主機(jī)端口,也就是將docker容器提供服務(wù)的端口映射到主機(jī)的某一個端口,消費者直接訪問主機(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)系。 消費者可以直接訪問主機(jī)的8080端口,此外,還必須開啟主機(jī)防火墻的8080端口。(防火墻的設(shè)置方法在上篇文章已經(jīng)介紹到了)
然而,在Docker Hub的大多常用的鏡像實例說明中,基本都不會使用這種方式來運(yùn)行一個容器,因為在公網(wǎng)中,多開一個端口,就意味著主機(jī)在網(wǎng)絡(luò)世界中多了一個弱點。我主機(jī)上的服務(wù)就因為防火墻未關(guān)閉端口被攻擊過。所以,使用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ī)之間的訪問。
docker network create docker-network // docker-network是局域網(wǎng)的名字,自定義 docker network ls // 查看已有的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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識。