查看最开始的ip

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/6e1d297a-5144-428f-aa62-c32f604e03ee/Untitled.png

查看容器IP信息

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/af6b991f-ddde-4a1e-927a-6fe3e89d53e2/Untitled.png

Link(不推荐使用)

#使用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": {}
                }
            }

打包java的jar包生成镜像

#构建镜像
[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