日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

docker之网络访问

發布時間:2025/3/20 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 docker之网络访问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

目錄

1.配置IP

2.啟動服務

3.服務維護


? ? ? 在之前的docker初體驗中,已經嘗試了使用端口映射訪問nginx,一塊網卡可以配置多個Ip地址,使用ifconfig配置ip地址,務必注意這里的ip地址不能沖突,可以使用ping ip,如果ping同網段的目標Ip不通,表示可用。

1.配置IP

[root@localhost opt]# ifconfig ens33:1 192.168.0.101/24 up [root@localhost opt]# ifconfig

?

這樣就配置了兩個ip地址,那是否可以登錄呢?

ssh root@192.168.0.101

?

這樣宿主機就有兩個ip地址,使用ifconfig查看之后,在ens33下有192.168.0.100和192.168.0.101兩個ip地址。

2.啟動服務

[root@localhost opt]# docker run -d -p 192.168.0.100:80:80 nginx:latest e2e1a5cbc8334d85acf1e8aa9da670dedbb96bb8fcc3ff7b338c5c63ab11eb91 [root@localhost opt]# docker run -d -p 192.168.0.101:80:80 nginx:latest 6ee5b735e75282d0f444ea54f7417bc3bfb3ff38cb0524e784f62a2f6d62a7ce

啟動之后使用docker命令查看

[root@localhost opt]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 6ee5b735e752 nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 192.168.0.101:80->80/tcp frosty_beaver e2e1a5cbc833 nginx:latest "/docker-entrypoint.…" 4 minutes ago Up 2 minutes 192.168.0.100:80->80/tcp jovial_raman [root@localhost opt]# netstat -lntup

如果映射端口時不寫ip地址,則使用默認的ip

[root@localhost opt]# docker run -d -p 81:80 nginx:latest

這樣之后,相當于訪問100的時候是一個網站,訪問101是另一個網站

3.服務維護

[root@localhost opt]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES c2c9273e9484 nginx:latest "/docker-entrypoint.…" 2 minutes ago Up 2 minutes 0.0.0.0:81->80/tcp, :::81->80/tcp mystifying_feistel 6ee5b735e752 nginx:latest "/docker-entrypoint.…" 9 minutes ago Up 9 minutes 192.168.0.101:80->80/tcp frosty_beaver e2e1a5cbc833 nginx:latest "/docker-entrypoint.…" 10 minutes ago Up 9 minutes 192.168.0.100:80->80/tcp jovial_raman

這樣共有三個容器,進入一個容器,修改器首頁信息

[root@localhost opt]# docker exec -it 6ee5b735e752 /bin/bash root@6ee5b735e752:/# echo '101:80'>/usr/share/nginx/html/index.html

再次訪問192.168.0.101

當然也可以使用其他命令來做映射

-p hostPort:containerPott -p ip:honstPort:containerPort 多個容器都想使用80端口 -p ip::containerPort(隨機端口) -p hostPort:containerPort:udp 使用udp協議 -p 192.168.0.104::53:udp 使用宿主機的104ip地址隨機端口的udp協議映射到容器udp協議的53端口 -p 81:80 -p 443:443 指定多個port隨機映射-隨機端口 docker run -P nginx:latest

前面兩個已經介紹了,現在看看對于隨機端口如何使用。先使用netstat命令查看一下當前的網絡信息

[root@localhost opt]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1749/dnsmasq tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1194/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1193/cupsd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1411/master tcp 0 0 127.0.0.1:6010 0.0.0.0:* LISTEN 7574/sshd: root@pts tcp 0 0 127.0.0.1:6011 0.0.0.0:* LISTEN 27560/sshd: root@pt tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 779/rpcbind tcp 0 0 192.168.0.101:80 0.0.0.0:* LISTEN 7818/docker-proxy tcp 0 0 192.168.0.100:80 0.0.0.0:* LISTEN 7688/docker-proxy tcp 0 0 0.0.0.0:81 0.0.0.0:* LISTEN 7999/docker-proxy tcp6 0 0 :::22 :::* LISTEN 1194/sshd tcp6 0 0 ::1:631 :::* LISTEN 1193/cupsd tcp6 0 0 ::1:25 :::* LISTEN 1411/master tcp6 0 0 ::1:6010 :::* LISTEN 7574/sshd: root@pts tcp6 0 0 ::1:6011 :::* LISTEN 27560/sshd: root@pt tcp6 0 0 :::111 :::* LISTEN 779/rpcbind tcp6 0 0 :::81 :::* LISTEN 8007/docker-proxy udp 0 0 0.0.0.0:917 0.0.0.0:* 779/rpcbind udp 0 0 192.168.122.1:53 0.0.0.0:* 1749/dnsmasq udp 0 0 0.0.0.0:67 0.0.0.0:* 1749/dnsmasq udp 0 0 0.0.0.0:111 0.0.0.0:* 779/rpcbind udp 0 0 0.0.0.0:32973 0.0.0.0:* 772/avahi-daemon: r udp 0 0 0.0.0.0:5353 0.0.0.0:* 772/avahi-daemon: r udp6 0 0 :::917 :::* 779/rpcbind udp6 0 0 :::111 :::* 779/rpcbind

注意觀察上面的ip地址和port信息,接著使用如下命令連續執行兩次?

[root@localhost opt]# docker run -d -p 192.168.0.101::80 nginx:latest 3a885ede52674ad84570573ac9cb7f4182c809bfa9fd39b4c6ae4ff7a6026dc6 [root@localhost opt]# docker run -d -p 192.168.0.101::80 nginx:latest 738b4313c4f779212547a19a1a7ed231133e71d6ecd08b6f59faf90d0ccd304d

再次使用netstat查看,發現多了兩個端口為49153和49154的端口嗎,那為什么是這個端口呢?

這個是內核參數決定的,使用sysctl過濾下網絡信息

[root@localhost opt]# [root@localhost opt]# sysctl -a|grep ipv4|grep rang net.ipv4.ip_local_port_range = 32768 60999 sysctl: reading key "net.ipv6.conf.all.stable_secret"

端口為從32768到60999這個范圍。這個有什么應用呢,比如用戶訪問web服務器的時候,比如使用了nginx反向代理的過程中,我們知道用戶可以開多個網頁。

因此入股不使用調優技術,則只能使用3個訪問請求,調優之后比如調成10000-60999,差不多5萬個多個也無法突破,因此使用多個負載均衡(比如使用4層負載均衡,如lvs),對接web服務集群。

?

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的docker之网络访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。