关于docker容器中socket配置端口问题

关于docker容器中socket配置端口问题

  • 关于容器端口和主机端口的关系
  • Socket端口配置
  • 关于0.0.0.0和127.0.0.1和其他ip的关系

关于容器端口和主机端口的关系

首先,我们在创造容器时,如果不指定端口映射,那么这个容器时封闭的,不能与外界网络通信。而我们一般情况下则需要指定端口映射,使得我们可以通过主机的端口访问到容器。我们常用
docker container run -p 8080:80 -d *progamme_name
*这里我们将容器的80端口映射到主机的8080端口,之后我们就可以通过主机的8080端口访问到容器了。如果想要公开容器的所有端口,则可以用
docker container run -P
系统会“随机”分配端口到主机端口。

Socket端口配置

我们在容器内运行一个python的socket服务时,这时需要制定绑定的Ip和端口,我们需要注意的是我们虽然映射了端口到主机,但是绑定的ip不是主机的ip,而是容器内的ip,可以通过ifconfig进行查询,或者直接使用0.0.0.0来接受所有ip的该端口请求

关于0.0.0.0和127.0.0.1和其他ip的关系

这里有个基础知识,127.0.0.1是每台主机的环回地址,只用来自身的网络测试,而不会和外部通信,然后还有inet内部Ip,用于一个公网集群内的主机间的通信,外网访问不了,公网ip一般是多台主机共享。最后0.0.0.0则是表示所有可用的ip.

你可能感兴趣的:(笔记,docker)