国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

解決docker容器之間網(wǎng)絡(luò)互通 啟動(dòng)web服務(wù)只能本地localhost訪問無法從外部訪問

這篇具有很好參考價(jià)值的文章主要介紹了解決docker容器之間網(wǎng)絡(luò)互通 啟動(dòng)web服務(wù)只能本地localhost訪問無法從外部訪問。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

docker容器之間相互訪問


1.查看當(dāng)前的網(wǎng)絡(luò)

Copy
[root@host ~]# docker network ls
NETWORK ID ? ? ? ? ?NAME ? ? ? ? ? ? ? ?DRIVER ? ? ? ? ? ? ?SCOPE
3dd4643bb158 ? ? ? ?bridge ? ? ? ? ? ? ?bridge ? ? ? ? ? ? ?local
748b765aca52 ? ? ? ?host ? ? ? ? ? ? ? ?host ? ? ? ? ? ? ? ?local
4d59a0cd3ff4 ? ? ? ?none ? ? ? ? ? ? ? ?null ? ? ? ? ? ? ? ?local
2.創(chuàng)建一個(gè)bridge的網(wǎng)絡(luò)(如不加參數(shù),默認(rèn)創(chuàng)建的就是bridge類型的網(wǎng)絡(luò))

Copy
[root@host ~]# docker network create my_net
a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649
[root@host ~]# docker network ls
NETWORK ID ? ? ? ? ?NAME ? ? ? ? ? ? ? ?DRIVER ? ? ? ? ? ? ?SCOPE
3dd4643bb158 ? ? ? ?bridge ? ? ? ? ? ? ?bridge ? ? ? ? ? ? ?local
748b765aca52 ? ? ? ?host ? ? ? ? ? ? ? ?host ? ? ? ? ? ? ? ?local
a80ae06b6591 ? ? ? ?my_net ? ? ? ? ? ? ?bridge ? ? ? ? ? ? ?local
4d59a0cd3ff4 ? ? ? ?none ? ? ? ? ? ? ? ?null ? ? ? ? ? ? ? ?local
3.查看該網(wǎng)絡(luò)的詳細(xì)信息

Copy
[root@host ~]# docker network inspect my_net
[
? ? {
? ? ? ? "Name": "my_net",
? ? ? ? "Id": "a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649",
? ? ? ? "Scope": "local",
? ? ? ? "Driver": "bridge",
? ? ? ? "EnableIPv6": false,
? ? ? ? "IPAM": {
? ? ? ? ? ? "Driver": "default",
? ? ? ? ? ? "Options": {},
? ? ? ? ? ? "Config": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "Subnet": "172.18.0.0/16",
? ? ? ? ? ? ? ? ? ? "Gateway": "172.18.0.1/16"
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? "Internal": false,
? ? ? ? "Containers": {},
? ? ? ? "Options": {},
? ? ? ? "Labels": {}
? ? }
]
4.啟動(dòng)容器時(shí)指定網(wǎng)絡(luò)

注:需要使用–name為容器指定一個(gè)名字

Copy
[root@host ~]# docker run --name boot1 -d --network my_net bbacc5de5941
7ca3834887355e3ecb4a2ae484694c2dbc0944f12e23498fd4b03237c4c35632
5.將已啟動(dòng)的應(yīng)用連接至網(wǎng)絡(luò)

注:需要使用–name為容器指定一個(gè)名字

Copy
[root@host ~]# docker run --name boot2 -d b8ea3d603e18
d281bfeb900325724968ec89f7e4623f9add844d101cf4773f3b14c36253f301
[root@host ~]# docker network connect my_net boot2
6.再啟動(dòng)一個(gè)centos7容器,同時(shí)連接到該網(wǎng)絡(luò)

Copy
[root@host ~]# docker run -it --name my_centos --network my_net centos:7
[root@b4f27e7db4c0 /]
7.在centos7容器中訪問另外的兩個(gè)容器。

注:這里boot1、boot2是兩個(gè)spring-boot項(xiàng)目,端口均為8080。

Copy
[root@b4f27e7db4c0 /]# ping -c 4 boot1
PING boot1 (172.18.0.2) 56(84) bytes of data.
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=2 ttl=64 time=0.089 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=3 ttl=64 time=0.097 ms
64 bytes from boot1.my_net (172.18.0.2): icmp_seq=4 ttl=64 time=0.084 ms

--- boot1 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3111ms
rtt min/avg/max/mdev = 0.055/0.081/0.097/0.017 ms
[root@b4f27e7db4c0 /]# ping -c 4 boot2
PING boot2 (172.18.0.3) 56(84) bytes of data.
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=1 ttl=64 time=0.065 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=2 ttl=64 time=0.090 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=3 ttl=64 time=0.078 ms
64 bytes from boot2.my_net (172.18.0.3): icmp_seq=4 ttl=64 time=0.101 ms

--- boot2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3085ms
rtt min/avg/max/mdev = 0.065/0.083/0.101/0.016 ms
[root@b4f27e7db4c0 /]# curl http://boot1:8080/
Hello Docker World[root@b4f27e7db4c0 /]#
[root@b4f27e7db4c0 /]# curl http://boot2:8080/
Hello Docker helloaaasdfasdf[root@b4f27e7db4c0 /]#
[root@b4f27e7db4c0 /]#
8.查看網(wǎng)絡(luò)詳細(xì)信息

注:按組合鍵ctrl+P+Q退出my_centos容器

Copy
[root@b4f27e7db4c0 /]# [root@host ~]#
[root@host ~]# docker network inspect my_net
[
? ? {
? ? ? ? "Name": "my_net",
? ? ? ? "Id": "a80ae06b65918f5e653faae643af6dbcbe2f4607053211a0528d24f62e46f649",
? ? ? ? "Scope": "local",
? ? ? ? "Driver": "bridge",
? ? ? ? "EnableIPv6": false,
? ? ? ? "IPAM": {
? ? ? ? ? ? "Driver": "default",
? ? ? ? ? ? "Options": {},
? ? ? ? ? ? "Config": [
? ? ? ? ? ? ? ? {
? ? ? ? ? ? ? ? ? ? "Subnet": "172.18.0.0/16",
? ? ? ? ? ? ? ? ? ? "Gateway": "172.18.0.1/16"
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ]
? ? ? ? },
? ? ? ? "Internal": false,
? ? ? ? "Containers": {
? ? ? ? ? ? "7ca3834887355e3ecb4a2ae484694c2dbc0944f12e23498fd4b03237c4c35632": {
? ? ? ? ? ? ? ? "Name": "boot1",
? ? ? ? ? ? ? ? "EndpointID": "10a5dad08d25fb5fbefdf3240b8b94edcf76e6e40ef8f1bb8fe029d288338e75",
? ? ? ? ? ? ? ? "MacAddress": "02:42:ac:12:00:02",
? ? ? ? ? ? ? ? "IPv4Address": "172.18.0.2/16",
? ? ? ? ? ? ? ? "IPv6Address": ""
? ? ? ? ? ? },
? ? ? ? ? ? "b4f27e7db4c01105ec2d59b34cf7971929d4c8563c3d3c4b6ff8bb61d031fe34": {
? ? ? ? ? ? ? ? "Name": "my_centos",
? ? ? ? ? ? ? ? "EndpointID": "9cbb7f1c9747787e70c0f94cc4924c987b084553426fbfa2b62713c178614498",
? ? ? ? ? ? ? ? "MacAddress": "02:42:ac:12:00:04",
? ? ? ? ? ? ? ? "IPv4Address": "172.18.0.4/16",
? ? ? ? ? ? ? ? "IPv6Address": ""
? ? ? ? ? ? },
? ? ? ? ? ? "d281bfeb900325724968ec89f7e4623f9add844d101cf4773f3b14c36253f301": {
? ? ? ? ? ? ? ? "Name": "boot2",
? ? ? ? ? ? ? ? "EndpointID": "19b58907f5209b98f316c83dddba08c0eacc38a677162767250dbdf4fbb9f3fa",
? ? ? ? ? ? ? ? "MacAddress": "02:42:ac:12:00:03",
? ? ? ? ? ? ? ? "IPv4Address": "172.18.0.3/16",
? ? ? ? ? ? ? ? "IPv6Address": ""
? ? ? ? ? ? }
? ? ? ? },
? ? ? ? "Options": {},
? ? ? ? "Labels": {}
? ? }
]
[root@host ~]#

docker啟動(dòng)時(shí)指定--network=host或-net=host,如果還指定了-p映射端口,那這個(gè)時(shí)候就會(huì)有此警告,

并且通過-p設(shè)置的參數(shù)將不會(huì)起到任何作用,端口號(hào)會(huì)以主機(jī)端口號(hào)為主,重復(fù)時(shí)則遞增。也就是他會(huì)直接使用宿主機(jī)的端口,設(shè)置端口映射會(huì)失效,也就是直接使用默認(rèn)啟動(dòng)端口,假設(shè)多個(gè),他就會(huì)讓端口遞增,比如第一個(gè)tomcat是8080,第二個(gè)就是8081,所以在使用host模式的時(shí)候不需要指定端口映射
?

啟動(dòng)web服務(wù)只能本地localhost訪問無法從外部訪問

現(xiàn)象
java springboot項(xiàng)目啟動(dòng)后,localhost(或127.0.0.1)加端口可以訪問,但是使用外網(wǎng)IP卻無法訪問。

原因及解決方法
springboot 的配置文件(yml 或 properties) 中缺少 server.address 的設(shè)置。

解決方法:
在springboot 的配置文件中增加 server.address 的配置。yml 配置文件如下所示:

server.address 用于指定server綁定的地址。

規(guī)則1:
server.address 為對(duì)應(yīng)機(jī)器ip地址時(shí) ,如 101.12.x.x
此時(shí)訪問該服務(wù)只能使用 ip 訪問 。

規(guī)則2:

server.address 配置為0.0.0.0

在服務(wù)器中,0.0.0.0并不是一個(gè)真實(shí)的的IP地址,它表示本機(jī)中所有的IPV4地址。監(jiān)聽0.0.0.0的端口,就是監(jiān)聽本機(jī)中所有IP的端口。如果想讓springboot 應(yīng)用通過外網(wǎng)ip可以訪問,一般情況,將server.address 配置為 0.0.0.0 即可。

一般源碼里面都是指定本機(jī)網(wǎng)絡(luò)的,要開發(fā)改成0.0.0.0,匹配所有ip地址
?文章來源地址http://www.zghlxwxcb.cn/news/detail-498379.html

到了這里,關(guān)于解決docker容器之間網(wǎng)絡(luò)互通 啟動(dòng)web服務(wù)只能本地localhost訪問無法從外部訪問的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Docker服務(wù)以及容器如何設(shè)置自動(dòng)啟動(dòng)

    Docker服務(wù)以及容器如何設(shè)置自動(dòng)啟動(dòng)

    Linux系統(tǒng)部署Java應(yīng)用時(shí),經(jīng)常使用Docker進(jìn)行安裝MySQL、Nginx、Redis等應(yīng)用,如果碰到服務(wù)器斷電重啟,在沒有設(shè)置自動(dòng)啟動(dòng)的情況下,我們所有應(yīng)用都需要重新手動(dòng)啟動(dòng)一遍,這樣就非常麻煩,不能及時(shí)處理,所以本文來講解一下如果設(shè)置自動(dòng)啟動(dòng),話不多說,直接開始。 1、

    2024年02月11日
    瀏覽(24)
  • docker 容器與主機(jī)端口 在容器中啟動(dòng)服務(wù) 多容器端口沖突問題

    容器內(nèi)的端口等與主機(jī)的端口等是分離的,容器中的環(huán)境可理解為是虛擬的. 容器中使用的網(wǎng)絡(luò)環(huán)境與主機(jī)保持一致: 示例: docker run -it --network host image:tag 其中: --network host表示容器中使用的端口 IP等都是主機(jī)上的。 容器中端口可以映射到主機(jī)端口,且多個(gè)不同的主機(jī)端口

    2024年02月16日
    瀏覽(24)
  • docker服務(wù)器、以及容器設(shè)置自動(dòng)啟動(dòng)

    查看已啟動(dòng)的服務(wù) 查看是否設(shè)置開機(jī)啟動(dòng) 設(shè)置開機(jī)啟動(dòng) 關(guān)閉開機(jī)啟動(dòng) 啟動(dòng)時(shí)加--restart=always 如果已經(jīng)過運(yùn)行的項(xiàng)目

    2024年02月12日
    瀏覽(92)
  • Docker服務(wù)以及容器如何設(shè)置設(shè)備開機(jī)自動(dòng)啟動(dòng)

    Docker服務(wù)以及容器如何設(shè)置設(shè)備開機(jī)自動(dòng)啟動(dòng)

    如果碰到斷電重啟,在沒有設(shè)置自動(dòng)啟動(dòng)的情況下,我們所有應(yīng)用(比如redis)都需要重新手動(dòng)啟動(dòng)一遍,這樣就非常麻煩,不能及時(shí)處理,所以本文來講解一下如果設(shè)置自動(dòng)啟動(dòng),話不多說,直接開始。 使用docker run命令創(chuàng)建容器時(shí)沒有添加參數(shù) --restart=always ,導(dǎo)致的后果是

    2024年02月04日
    瀏覽(26)
  • 解決docker啟動(dòng)mysql容器失敗問題

    解決docker啟動(dòng)mysql容器失敗問題

    聲明:我使用的mysql版本為:8.0.21 當(dāng)我通過docker使用以下命令啟動(dòng)mysql mysql/data 是數(shù)據(jù)庫文件存放的地方。必須要掛載到容器外,否則容器重啟一切數(shù)據(jù)消失。 mysql/log 是數(shù)據(jù)庫主生的log。建議掛載到容器外。 /etc/localtime:/etc/localtime:ro 是讓容器的時(shí)鐘與宿主機(jī)時(shí)鐘同步,避免

    2024年02月11日
    瀏覽(28)
  • IDEA整合Docker,一鍵打包服務(wù)鏡像與啟動(dòng)容器

    IDEA整合Docker,一鍵打包服務(wù)鏡像與啟動(dòng)容器

    嘗試了IDEA整合Docker,坑有些多,但經(jīng)過查閱資料都一一解決了,寫了個(gè)案例,感覺這種方式確實(shí)要方便很多。下面來整理下步驟: 一、安裝Docker 準(zhǔn)備一臺(tái)Linux,我這里用的是centos 7 mini 版,然后安裝Docker 安裝Device Mapper: 配置Docker的yum源: 更新yum緩存 安裝Docker-ce 等待上述加

    2024年02月02日
    瀏覽(63)
  • Docker服務(wù)重啟后讓容器自動(dòng)啟動(dòng) | restart參數(shù)

    問題:服務(wù)器斷電之后,docker服務(wù)掛掉了,需要重啟docker,但是我們重啟 docker 后,容器也就停止了,不會(huì)跟隨 docker 啟動(dòng)而啟動(dòng)。那么如果想在docker服務(wù)重啟之后讓容器自動(dòng)啟動(dòng),該怎么操作呢? 1.容器還沒有創(chuàng)建,在運(yùn)行容器的時(shí)候加入 –restart=always 參數(shù) 2.容器已經(jīng)運(yùn)行

    2024年02月10日
    瀏覽(18)
  • 解決:docker創(chuàng)建Redis容器成功,但無法啟動(dòng)Redis容器、也無報(bào)錯(cuò)提示

    解決:docker創(chuàng)建Redis容器成功,但無法啟動(dòng)Redis容器、也無報(bào)錯(cuò)提示

    1.修改redis.conf配置文件參數(shù) daemonize 為 no : 由于創(chuàng)建容器實(shí)例時(shí),會(huì)進(jìn)行容器數(shù)據(jù)卷掛載,因此可以直接在外部宿主機(jī)里面修改,docker會(huì)自動(dòng)同步該文件到redis容器對(duì)應(yīng)目錄里面 2.刪除之前創(chuàng)建的redis容器實(shí)例 3.復(fù)雜使用run命令,再次重新創(chuàng)建redis容器實(shí)例。會(huì)進(jìn)行容器數(shù)據(jù)卷

    2024年02月20日
    瀏覽(21)
  • Docker 啟動(dòng)容器遇到 operation not permitted 錯(cuò)誤的解決

    問題 在 Linux 啟動(dòng)容器報(bào)錯(cuò) operation not permitted ,容器運(yùn)行失敗 (但在 Mac 上運(yùn)行正常,注 Mac 上的 Docker 版本不同于 Linux) 報(bào)錯(cuò)示例: 原因 與 Linux 的權(quán)限安全保護(hù)相關(guān) https://bugzilla.redhat.com/show_bug.cgi?id=1764152 https://blog.twtnn.com/2021/09/docker-containeroperation-not-permitted.html ...Linux為了

    2024年02月11日
    瀏覽(28)
  • docker啟動(dòng)容器指定時(shí)區(qū) 解決mysql時(shí)間非北京時(shí)間問題

    運(yùn)行docker鏡像的時(shí)候可以指定環(huán)境變量TZ來設(shè)置使用那個(gè)時(shí)區(qū)的時(shí)間。如果不指定有些鏡像在制作的時(shí)候設(shè)置了跟自己想用的時(shí)區(qū)不一樣的時(shí)區(qū)就會(huì)出現(xiàn)尷尬的問題。 指定使用東八區(qū)時(shí)區(qū)命令如下: docker run -e TZ=Asia/Shanghai … docker啟動(dòng)mysql容器命令,指定庫表編碼:

    2024年02月14日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包