当前位置:   article > 正文

Docker基础18--3.5端口映射与容器互连_docker两个容器共用一个端口

docker两个容器共用一个端口

3.5端口映射与容器互连

3.5.1将宿主机的网络端口映射到容器的网络端口

docker run –P/-p  IMAGE [COMMAND] [ARG...]

options:

-P 将宿主机49000~49900端口随机映射到容器的开放端口

-p 指定宿主机和容器的端口来进行映射

实验1:

docker run -d -P --name=httpd centos/httpd-24-centos7

启动一个容httpd,这个容器的默认配置会开放一个8443端口

使用-P参数的话,会从宿主机的的49000~49900端口,随机映射到容器的8443端口,本实验中,宿主机的49161端口被映射到了容器的8443端口。

 

此时我们在外部网络,访问宿主机的49161端口,这个访问数据会被重写向到容器的8443端口,并且可以打开网页。

实验2:

docker run -d -p 443:8443 --name httpd1 centos/httpd-24-centos7

启动一个容httpd1,这个容器的默认配置会开放一个8443端口

使用-p参数的话,可以指定端口来进行映射,本实验中,指定宿主机的443端口映射到容器的8443端口。

 

这个192.168.0.197是宿主机的IP地址,443端口则被映射到了容器的8443端口。

docker run -d -p 192.168.0.197:443:172.17.0.3:8443 --name httpd1 centos/httpd-24-centos7

在端口前面加IP地址,则是指定被映射端口的IP地址。如果不加IP地址,则所有的IP的此端口都会被映射。

3.5.2容器互联

容器互联(linking)是一种让多个容器的应用进行交互的机制。它会在源容器和接收容器之间创建连接关系。接收容器可以通过容器名快速访问到源容器,而不用指定具体的IP地址。

docker run --link string [SOURCE CONTAINER] container

实验1

step 1 创建一个新容器httpd,做为源容器

docker run -d --name=httpd centos/httpd-24-centos7

step 2 创建一个新容器centos,连接到源容器

docker run -P -it --name=centos --link httpd centos:1.0 bash

查看容器centos的环境变量

docker exec -it centos env

 

会发现很多HTTPD为前缀的变量,就是从源容器httpd中传送过来的。

查看容器centos/etc/hosts文件

docker exec -it centos cat /etc/hosts

 

会发现也有一些是源容器httpd中传送过来的。

docker exec centos ping httpd

 

直接ping 容器名,发现也是可以ping通的。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/87903
推荐阅读
相关标签
  

闽ICP备14008679号