docker0默认网卡
创建两个容器,端口分别是88,89
[root@192 ~]# docker run -d --name app1 -p 88:80 9bbf2937ac71
c943263cfc1a6c91ce41287296a8cb26034b5b49168c6c329e56d43dbd4f7d03
[root@192 ~]# docker run -d --name app2 -p 99:80 9bbf2937ac71
7f529904373ea6abbfd8e320f9029499482705a2a9709fcf0a91c895a4e68f84
不指定网卡的情况下,默认使用docker0网卡
查看app1详情
docker inspect app1
测试:进入app1访问app2的页面
[root@192 ~]# docker exec -it app1 bash
root@c943263cfc1a:/# curl http://172.17.0.3:80
<h1>Hello Docker</h1>
可以看出在容器app1内部,通过容器ip加端口就可以直接访问,
当然也可以通过宿主机的ip加外部端口访问到app2,如下:
root@c943263cfc1a:/# curl http://192.168.75.152:99
<h1>Hello Docker</h1>
只不过这种方式流程比较长
创建自定义网络mynet
[root@192 ~]# docker network create mynet
[root@192 ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
0f534c1d3282 bridge bridge local
a62f65689dd1 host host local
a6dc49c7b752 mynet bridge local
e0a0c2375655 none null local
启动容器加入自定义网络
[root@192 ~]# docker run -d --name app1 -p 88:80 --network mynet 9bbf2937ac71
3168fca6b4dea1df7f57317c1b66d8455a4243be068609ac1733240b7e1998fb
[root@192 ~]# docker run -d --name app2 -p 99:80 --network mynet 9bbf2937ac71
62a3566bfafb9593d88d86d3fa805a12a530479d7b1e761599b7ab9e1a5b5688
测试:进入app1访问app2的页面
root@3168fca6b4de:/# curl http://app2:80
<h1>Hello Docker</h1>
这时候就可以通过容器名访问到页面,可以不用担心app2的ip变化了