Docker容器中nginx的端口映射

您所在的位置:网站首页 docker本地端口和容器端口一样吗怎么设置 Docker容器中nginx的端口映射

Docker容器中nginx的端口映射

2024-07-16 19:30| 来源: 网络整理| 查看: 265

例子1. 一个运行nginx的Docker容器

一台机器下,一个Docker容器运行nginx,并将容器中nginx的端口映射到主机的80端口的命令,如下,

$ docker run -it -p 80:80 nginx

测试a: 宿主机192.168.0.108访问192.168.0.108:80,如下,

$ curl 192.168.0.108:80 Welcome to nginx! body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } ...

测试b: 其他机器192.168.0.109访问192.168.0.108:80,如下,

$ curl 192.168.0.108:80 Welcome to nginx! body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } ... 例子2. 两个运行nginx的Docker容器

两台机器下,两个Docker容器运行nginx,并分别将容器中nginx的端口映射到其主机的80端口的命令,如下,

// 主机192.168.0.108 $ docker run -it -p 80:80 nginx // 主机192.168.0.109 $ docker run -it -p 80:80 nginx

测试a: 主机192.168.0.109的运行nginx的Docker容器,访问主机192.168.0.108的80端口。其中,主机192.168.0.108的80端口是由其nginx的Docker容器映射而成的。

// 主机192.168.0.109 $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES af94cb2ea807 nginx "/docker-entrypoint.…" 4 minutes ago Up 4 minutes 0.0.0.0:80->80/tcp strange_murdock $ docker exec -it af94cb2ea807 /bin/bash root@af94cb2ea807:/# curl 192.168.0.108:80 Welcome to nginx! body { width: 35em; margin: 0 auto; font-family: Tahoma, Verdana, Arial, sans-serif; } ... 总结

Docker,可以采用容器和其宿主机之间的端口映射的方法,达到跨主机的容器之间的通信目的。但这种方法本质上还是映射到宿主机的端口进行宿主机之间通信的方法,是一种虚拟IP之间间接通信的方法。

如果要达到虚拟IP之间直接通信的目的,技术上可行的方案是overlay network,产品比如Docker Swarm,Kubernetes Flannel等。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3