docker容器的网络通信主要是多个容器之间通过网络通信进行相互配合。
两种网络通信的方式:
- 映射容器端口到宿主主机
- 容器互联机制提供网络服务
端口映射实现访问容器
如果要从外部访问某个容器的时候,需要知道某个容器的端口,然后从这个端口访问容器。而进行端口映射的时候使用-P或者-p来指定端口映射。-P是随机映射一个端口。-p:是指定一个端口来进行网络服务。建议使用-p.
docker run -d -P tomcat
容器的8080端口映射到本地的32768端口。我们可以通过32768端口访问容器内大的tomcat服务。
ifconfig
查看ip地址
然后在浏览器输入ip:32768然后去访问tomcat页面。
映射所有端口地址。
docker run -d -p 8080:8080 tomcat
映射到指定地址的指定端口
docker run -d -p 127.0.0.1:8081:8080 tomcat
映射到指定地址的任意端口
docker run -d -p 127.0.0.1::8080 tomcat
查看映射端口
docker port [id] 8080
容器互联实现容器间通信
1.建立一个容器,并给这个容器命名。
docker run -d --name db -e MYSQL_ROOT_PASSWORD=123456 mysql
-e:是指附加数据库密码
2.使用–link来对容器进行互联。
docker run -d -P --name web --link db:linkname tomcat
db:是指互联的容器的名字
linkname:是指这个互联的名字。可以自己设置。