#使用link绑定
[root@iZf0railv34ewtZ ~]# docker run -d --name tomcat03 --link tomcat01 tomcat
6d30d9befdc2bf25147102cc6c8f13d591bf90a3f0ceefe58c004e8c2377e02a
[root@iZf0railv34ewtZ ~]# docker exec -it tomcat03 cat /etc/hosts
127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
172.17.0.2 tomcat01 443cbda0cd92
172.17.0.4 6d30d9befdc2
#不使用ip,而通过容器名来ping
[root@iZf0railv34ewtZ ~]# docker exec -it tomcat03 ping tomcat01
PING tomcat01 (172.17.0.2) 56(84) bytes of data.
64 bytes from tomcat01 (172.17.0.2): icmp_seq=1 ttl=64 time=0.174 ms
64 bytes from tomcat01 (172.17.0.2): icmp_seq=2 ttl=64 time=0.114 ms
#1、通过docker network create命令创建自定义网络
[root@VM-0-10-centos ~]# docker network create --driver bridge --subnet 192.168.0.0/16 --gateway 192.168.0.1 mynet
41c7dfcca8f97f44d083efe5d7fae7055a5031cc7f56bde30f174c2fe2598944
#2、查看网络模式列表 ,可以找到自定义的mynet网络模式
[root@VM-0-10-centos ~]# docker network ls
NETWORK ID NAME DRIVER SCOPE
1fda20b497e9 bridge bridge local
52d322258c89 host host local
41c7dfcca8f9 mynet bridge local
90f5e701cf20 none null local
#3、启动时指定网络模式
[root@iZf0railv34ewtZ ~]# docker run -d --network mynet tomcat
903dc94738fa72601fe4c977359ab44611982f57db835d949e618c3b420c9b3a
#4、查看网络信息
[root@iZf0railv34ewtZ ~]# docker inspect 903dc94738fa
#5、可以看到网络模式正是指定的mynet网络模式
"Networks": {
"mynet": {
"IPAMConfig": null,
"Links": null,
"Aliases": [
"903dc94738fa"
],
"NetworkID": "4ea8254483515a79d8ab7c874aa6dbadf14e73144b95f6397976b9abdd3b8d5f",
"EndpointID": "57a42606f45b893fa922f701d3b102d689570ae8aed7b5904ba4bceab4a588a9",
"Gateway": "192.168.0.1", #指定的网关
"IPAddress": "192.168.0.2", #自动生成的IP地址
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:c0:a8:00:02",
"DriverOpts": null
}
}
#6、这是我发现使用ping容器名的网络连通
[root@iZf0railv34ewtZ ~]# docker exec -it 9b7c47ee5d5e ping tomcat01
PING tomcat01 (192.168.0.2) 56(84) bytes of data.
64 bytes from tomcat01.mynet (192.168.0.2): icmp_seq=1 ttl=64 time=0.144 ms
64 bytes from tomcat01.mynet (192.168.0.2): icmp_seq=2 ttl=64 time=0.109 ms
64 bytes from tomcat01.mynet (192.168.0.2): icmp_seq=3 ttl=64 time=0.118 ms
说明:创建两个不同网络下的容器,一个容器连接到另一个网络下,并ping连接网络下的容器是否连通
[root@iZf0railv34ewtZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9b7c47ee5d5e tomcat "catalina.sh run" 21 minutes ago Up 21 minutes 8080/tcp tomcat02
bcf7e5bfb321 tomcat "catalina.sh run" 22 minutes ago Up 22 minutes 8080/tcp tomcat01
#创建一个不在mynet的网关下的容器
[root@iZf0railv34ewtZ ~]# docker run -d -P --name tomcat-default tomcat
f69f0f716f1cb1d94fd59e6b45002b478bb8098e409128a01562e1b4f8edda49
[root@iZf0railv34ewtZ ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f69f0f716f1c tomcat "catalina.sh run" 4 seconds ago Up 3 seconds 0.0.0.0:49153->8080/tcp tomcat-default
9b7c47ee5d5e tomcat "catalina.sh run" 23 minutes ago Up 23 minutes 8080/tcp tomcat02
bcf7e5bfb321 tomcat "catalina.sh run" 23 minutes ago Up 23 minutes 8080/tcp tomcat01
#没加入网络之前ping,网络未能连通
[root@iZf0railv34ewtZ ~]# docker exec -it tomcat01 ping tomcat-default
ping: tomcat-default: Name or service not known
#加入网络
[root@iZf0railv34ewtZ ~]# docker network connect mynet tomcat-default
#没加入网络后ping,网络连通
[root@iZf0railv34ewtZ ~]# docker exec -it tomcat01 ping tomcat-default
PING tomcat-default (192.168.0.4) 56(84) bytes of data.
64 bytes from tomcat-default.mynet (192.168.0.4): icmp_seq=1 ttl=64 time=0.133 ms
64 bytes from tomcat-default.mynet (192.168.0.4): icmp_seq=2 ttl=64 time=0.135 ms
64 bytes from tomcat-default.mynet (192.168.0.4): icmp_seq=3 ttl=64 time=0.105 ms
read escape sequence
[root@iZf0railv34ewtZ ~]#
#此时查看网络信息,发现容器在两个网络下,拥有两个ip地址
"Networks": {
"bridge": {
"IPAMConfig": null,
"Links": null,
"Aliases": null,
"NetworkID": "082c11362b1de545317dc346885216684ee3c614ee871c566e9c03624a5b99a7",
"EndpointID": "4a86a9dccc69867521aa25f3b7a9f87bd85b05722cb57bf3bda5c71ea09c0c85",
"Gateway": "172.17.0.1",
"IPAddress": "172.17.0.2",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:ac:11:00:02",
"DriverOpts": null
},
"mynet": {
"IPAMConfig": {},
"Links": null,
"Aliases": [
"f69f0f716f1c"
],
"NetworkID": "4ea8254483515a79d8ab7c874aa6dbadf14e73144b95f6397976b9abdd3b8d5f",
"EndpointID": "9278009aa353618d53df748d318d199e9a9cfc8398ff4e80bae7a15e3f618461",
"Gateway": "192.168.0.1",
"IPAddress": "192.168.0.4",
"IPPrefixLen": 16,
"IPv6Gateway": "",
"GlobalIPv6Address": "",
"GlobalIPv6PrefixLen": 0,
"MacAddress": "02:42:c0:a8:00:04",
"DriverOpts": {}
}
}
#构建镜像
[root@VM-0-10-centos home]# docker build -t springboot-app .
Sending build context to Docker daemon 372.6MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete
fce5728aad85: Pull complete
76610ec20bf5: Pull complete
60170fec2151: Pull complete
e98f73de8f0d: Pull complete
11f7af24ed9c: Pull complete
49e2d6393f32: Pull complete
bb9cdec9c7f3: Pull complete
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
---> 6262b5bdb38d
Step 3/5 : CMD ["--server.port=8080"]
---> Running in 43d5532ee94e
Removing intermediate container 43d5532ee94e
---> f0a3eaa0760e
Step 4/5 : EXPOSE 8080
---> Running in 18d7e7a17977
Removing intermediate container 18d7e7a17977
---> 2039fbc7357c
Step 5/5 : ENTRYPOINT ["java","-jar","app.jar"]
---> Running in 48e7639ee02c
Removing intermediate container 48e7639ee02c
---> 8fb4750882b2
Successfully built 8fb4750882b2
Successfully tagged springboot-app:latest
#查看镜像
[root@VM-0-10-centos home]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
springboot-app latest 8fb4750882b2 13 seconds ago 660MB
ikart/divtomcat 1.0 c61c72f06c63 29 hours ago 283MB
ikart/docker-images 1.0 c61c72f06c63 29 hours ago 283MB
diytomcat latest c61c72f06c63 29 hours ago 283MB
mysql_t1 1.0 c54cc0f9015f 4 days ago 449MB
tomcat latest bcd554d24cc5 5 days ago 667MB
nginx latest 7ce4f91ef623 6 days ago 133MB
mysql 5.7 cd0f0b1e283d 6 days ago 449MB
mysql latest e646c6533b0b 6 days ago 546MB
tomcat <none> 0ce438e89a29 9 days ago 667MB
hello-world latest d1165f221234 4 weeks ago 13.3kB
centos latest 300e315adb2f 3 months ago 209MB
java 8 d23bdf5b1b1b 4 years ago 643MB
#运行镜像
[root@VM-0-10-centos home]# docker run -it -p 1234:8080 8fb4750882b2