您好,登錄后才能下訂單哦!
docker 中network如何使用,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
映射主機端口,也就是將docker容器提供服務的端口映射到主機的某一個端口,消費者直接訪問主機即可。
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
使用以上命令運行容器的時候,將容器docker-nginx的80端口映射到了主機的8080端口,其中 -p 8080:80 就是指定端口的映射關系。 消費者可以直接訪問主機的8080端口,此外,還必須開啟主機防火墻的8080端口。(防火墻的設置方法在上篇文章已經介紹到了)
然而,在Docker Hub的大多常用的鏡像實例說明中,基本都不會使用這種方式來運行一個容器,因為在公網中,多開一個端口,就意味著主機在網絡世界中多了一個弱點。我主機上的服務就因為防火墻未關閉端口被攻擊過。所以,使用docker network組建容器之間的網絡是很有必要的。
在docker中,docker network 是主要是用做容器之間的通信,即組建容器之間的局域網。其實使用 -link 可以實現容器之間簡單的網絡,但是容器較多而且通信關系較為復雜時,使用network就更又條理。
docker network 即在容器之間組建一個局域網,然后各個容器可以加入這個網絡,之后容器之間的訪問就如同局域網中主機之間的訪問。
docker network create docker-network // docker-network是局域網的名字,自定義 docker network ls // 查看已有的network
// 運行新的容器,并加入到docker-network網絡中 // --network 表示這個容器要連接到的網絡 // --network-alias 表示這個容器在此網絡中的名稱,也可以使用--ip來指定容器的ip docker run --name docker-nginx -d --network docker-network --network-alias nginx-network nginx // 已經在運行的容器加入網絡使用以下命令 // 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
經過以上命令,我們已經創建了一個名為 docker-network 的網絡,并且有兩個容器加入了這個網絡,在網絡中的名稱分別為:nginx-network 和 wp-network。現在需要使用 nginx 作為反向代理來訪問 wordpress(wp-network),可直接修改 nginx 的配置文件,設置代理的主機地址為 wp-network 即可,( wp-network 為容器在network中的名稱)如下:
location / { proxy_pass http://wp-network:80/; } // 注意:這里的80端口為wordpress鏡像暴露的端口,(即DockerFile中expose的端口), // 并不是映射到主機的端口。(其實也沒必要映射端口了)
關于docker 中network如何使用問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。