最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法

 更新時間:2020年07月30日 09:39:58   作者:江名峰  
這篇文章主要介紹了在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

在CentOS 7上當我們以類似下列命令將主機端口與容器端口映射時可能遇到無法訪問容器服務的問題

docker run --name web_a -p 192.168.1.250:803:80 -d web_a:beta1.0.0 .

由于docker在執(zhí)行此命令時,是向iptables注入了一條規(guī)則將主機803映射到容器80端口,但是CentOS 7中以firewalld服務替代了iptables。因此,上述命令的端口映射不會生效。

解決方法:首先觀察一下主機上的網卡信息,確認增加了一個docker0的虛擬網卡:

[root@localhost /home]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 172.17.0.1 netmask 255.255.0.0 broadcast 172.17.255.255
    inet6 fe80::42:5cff:fe0e:82f9 prefixlen 64 scopeid 0x20<link>
    ether 02:42:5c:0e:82:f9 txqueuelen 0 (Ethernet)
    RX packets 1288 bytes 1561177 (1.4 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 1594 bytes 108755 (106.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.1.250 netmask 255.255.255.0 broadcast 192.168.1.255
    inet6 fe80::76f4:9aea:4973:ec6c prefixlen 64 scopeid 0x20<link>
    inet6 240e:379:542:2800:8844:77ba:78dd:7 prefixlen 128 scopeid 0x0<global>
    inet6 240e:379:542:2811:3ead:218:ba68:38e6 prefixlen 64 scopeid 0x0<global>
    ether 74:d4:35:09:93:19 txqueuelen 1000 (Ethernet)
    RX packets 10166908 bytes 1221399579 (1.1 GiB)
    RX errors 0 dropped 3014 overruns 0 frame 0
    TX packets 982334 bytes 427296782 (407.5 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    device interrupt 18

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10<host>
    loop txqueuelen 1000 (Local Loopback)
    RX packets 1833650 bytes 450567722 (429.6 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 1833650 bytes 450567722 (429.6 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

vethecef228: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet6 fe80::f425:f1ff:fe82:9c19 prefixlen 64 scopeid 0x20<link>
    ether f6:25:f1:82:9c:19 txqueuelen 0 (Ethernet)
    RX packets 234 bytes 1520113 (1.4 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 613 bytes 39809 (38.8 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

使用如下命令確認容器實例得到的虛擬ip:

docker inspect web_a

假設容器中的ip為172.17.0.2,接下來我們要為此IP做個NAT轉發(fā)規(guī)則,并讓firewalld服務處理此規(guī)則:

#主機端口請求轉發(fā)到容器(容器中的服務不要監(jiān)聽localhost而要監(jiān)聽容器分配的虛擬IP或者以0.0.0.0替代)
firewall-cmd --permanent --zone=public --add-masquerade 啟用端口NAT轉發(fā)
#將主機803端口請求轉發(fā)到容器上的80端口
firewall-cmd --add-forward-port=port=803:proto=tcp:toaddr=172.17.0.2:toport=80 --permanent
#重載規(guī)則
firewall-cmd --reload
#列出所有規(guī)則
firewall-cmd --list-all
public (active)
 target: default
 icmp-block-inversion: no
 interfaces: enp2s0
 sources:
 services: ssh dhcpv6-client
 ports: 3306/tcp 80/tcp 21/tcp 5000/tcp 6379/tcp 900/tcp 801/tcp 802/tcp 6000/tcp 5002/tcp 90/tcp 9092/tcp 81/tcp 803/tcp
 protocols:
 masquerade: yes
 forward-ports: port=803:proto=tcp:toport=80:toaddr=172.17.0.2
 source-ports:
 icmp-blocks:
 rich rules:
#重新啟動docker
systemctl restart docker
#重新啟動容器
docker start web_a

經上述操作,就能以主機IP:803訪問容器上的80端口的服務,并不需要關閉firewalld(很多網上的結論是換成iptables服務,實測不需要)。

總結

到此這篇關于在CentOS 7 上為docker配置端口轉發(fā)以兼容firewall的解決方法的文章就介紹到這了,更多相關docker配置端口轉發(fā)以兼容firewall內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Docker安裝常用組件(mysql,redis)的方法

    Docker安裝常用組件(mysql,redis)的方法

    今天小編就為大家分享一篇關于Docker安裝常用組件(mysql,redis)的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Docker?安裝?Consul單機模式的操作方法

    Docker?安裝?Consul單機模式的操作方法

    這篇文章主要介紹了Docker?安裝?Consul單機模式,本文給大家講解的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • Docker下多容器搭建 lamp的詳細過程(httpd+mysql+php+redis)

    Docker下多容器搭建 lamp的詳細過程(httpd+mysql+php+redis)

    這篇文章主要介紹了Docker下多容器搭建lamp的詳細過程(httpd+mysql+php+redis),搭建拉取所需鏡像,本文給大家講解的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-01-01
  • 將普通用戶加入Docker組,使用docker問題

    將普通用戶加入Docker組,使用docker問題

    這篇文章主要介紹了將普通用戶加入Docker組,使用docker問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • docker啟動ES內存溢出的解決方案

    docker啟動ES內存溢出的解決方案

    這篇文章主要介紹了docker啟動ES內存溢出的解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 詳解基于docker-swarm搭建持續(xù)集成集群服務

    詳解基于docker-swarm搭建持續(xù)集成集群服務

    這篇文章主要介紹了詳解基于docker-swarm搭建持續(xù)集成集群服務,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • docker實現MySQL的主從復制

    docker實現MySQL的主從復制

    在學習項目的時候實現讀寫分離用到了主從復制,但是一般要實現的話需要虛擬機或服務器非常麻煩,但是docker可以完美解決這一問題,本文主要介紹了docker實現MySQL的主從復制,感興趣的可以了解一下
    2024-01-01
  • docker鏡像的拉取登陸上傳及保存等相關使用命令

    docker鏡像的拉取登陸上傳及保存等相關使用命令

    這篇文章主要為大家介紹了docker鏡像的拉取登陸上傳及保存等相關使用命令,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2022-04-04
  • 教你使用Docker搭建gitlab社區(qū)漢化版的詳細過程

    教你使用Docker搭建gitlab社區(qū)漢化版的詳細過程

    很多朋友不太清楚使用Docker搭建gitlab社區(qū)漢化版的過程,總是容易出現錯誤,今天小編抽空給大家分享使用Docker搭建gitlab社區(qū)漢化版的詳細過程,一起看看吧
    2021-09-09
  • 使用docker部署influxdb與 mongo的常用命令

    使用docker部署influxdb與 mongo的常用命令

    這篇文章主要介紹了使用docker部署influxdb與 mongo的常用命令,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-05-05

最新評論

黄浦区| 志丹县| 临城县| 麻栗坡县| 恩平市| 措勤县| 东明县| 平江县| 墨脱县| 铜川市| 黎城县| 富裕县| 文成县| 栾川县| 蒙山县| 桂林市| 招远市| 资源县| 天门市| 南平市| 康平县| 沙雅县| 昔阳县| 吴堡县| 文山县| 吉隆县| 若尔盖县| 东乡族自治县| 晋宁县| 浦城县| 宜君县| 恩施市| 怀柔区| 府谷县| 苍南县| 唐山市| 安康市| 鄄城县| 泾阳县| 天台县| 南投市|