(五)Docker查看容器ip及指定固定IP

如不懂Docker的网络模式及网络配置的请查看Docker四种网络模式Docker网络配置

一、Docker如何查看容器ip

docker inspect -f '{
   
   {range .NetworkSettings.Networks}}{
   
   {.IPAddress}}{
   
   {end}}' container_name_or_id

可直接获得容器的ip地址如:172.18.0.4

显示所有容器IP地址:

docker inspect --format='{
   
   {.Name}} - {
   
   {range.NetworkSettings.Networks}}{
   
   {.IPAddress}}{
   
   {end}}' $(docker ps -aq)

常用方法有两种

docker inspect 容器ID | grep IPAddress

方法二

查看docker name:

sudo docker inspect -f='{
   
   {.Name}}' $(sudo docker ps -a -q)

查看dockers ip:

sudo docker inspect -f='{
   
   {.NetworkSettings.IPAddress}}' $(sudo docker ps -a -q)

综上,我们可以写出以下脚本列出所有容器对应的名称,端口,及ip

docker inspect -f='{
   
   {.Name}} {
   
   {.NetworkSettings.IPAddress}} {
   
   {.HostConfig.PortBindings}}' $(docker ps -aq)

二、为容器指定固定ip

当运行一个容器需要指定的网络的时候,就可以通过--network参数来指定我们的容器连接到某一个被指定的网络。

1.创建网络名为net01,网关是10.1.9.1的网络

[root@docker02 opt]docker network create -d bridge --subnet 10.1.9.0/24 --gateway 10.1.9.1 net01
53db74e6642a2a0fad3b55ef5c109b79b36a100df733074f300ff222828ec6ea
[root@docker02 opt]docker network ls
NETWORK ID          NAME                DRIVER              SCOPE
aa53a77695ff        bridge              bridge              local
452e063a1c6f        harbor_harbor       bridge              local
3a821c0610b7        host                host                local
53db74e6642a        net01               bridge              local
18f030428279        none                null                local

 2.创建一个容器1,指定IP是10.1.9.100,网络是net01

扫描二维码关注公众号,回复: 11813528 查看本文章
[root@docker02 opt]docker run -it --rm --network=net01 --ip 10.1.9.100 busybox
/ #
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
166: eth0@if167: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:0a:01:09:64 brd ff:ff:ff:ff:ff:ff
    inet 10.1.9.100/24 brd 10.1.9.255 scope global eth0
       valid_lft forever preferred_lft forever

  3.创建一个容器1,指定IP是10.1.9.101,网络是net01

[root@docker02 ~]docker run -it --rm --network=net01 --ip 10.1.9.101 busybox
/ # ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
177: eth0@if178: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue
    link/ether 02:42:0a:01:09:65 brd ff:ff:ff:ff:ff:ff
    inet 10.1.9.101/24 brd 10.1.9.255 scope global eth0
       valid_lft forever preferred_lft forever

 4.测试自定义网络的IP连通性

/ # ping 10.1.9.100
PING 10.1.9.100 (10.1.9.100): 56 data bytes
64 bytes from 10.1.9.100: seq=0 ttl=64 time=0.141 ms
64 bytes from 10.1.9.100: seq=1 ttl=64 time=0.064 ms
64 bytes from 10.1.9.100: seq=2 ttl=64 time=0.174 ms
64 bytes from 10.1.9.100: seq=3 ttl=64 time=0.069 ms
64 bytes from 10.1.9.100: seq=4 ttl=64 time=0.070 ms
64 bytes from 10.1.9.100: seq=5 ttl=64 time=0.064 ms

 5.查看net01网络信息

[root@docker02 opt]docker network inspect net01
[
    {
        "Name": "net01",
        "Id": "412877924ea50a7e2838930b040ebd19f75e8808cba5220df03f23b8e9fa2ba0",
        "Created": "2018-03-29T14:29:02.930787227-04:00",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.1.9.0/24",
                    "Gateway": "10.1.9.1"
                }
            ]
        },
        "Internal": false,
        "Attachable": false,
        "Ingress": false,
        "ConfigFrom": {
            "Network": ""
        },
        "ConfigOnly": false,
        "Containers": {
            "eb264658b33532e014624da402ca1d5c9ac2fb723b96b23051834ce2fef86faa": {
                "Name": "eager_chatterjee",
                "EndpointID": "a0993eefa02a9e562ee25af0c0c5f29bb2e3fd1c00b6e85a12031bb26c1dee57",
                "MacAddress": "02:42:0a:01:09:65",
                "IPv4Address": "10.1.9.101/24",
                "IPv6Address": ""
            }
        },
        "Options": {},
        "Labels": {}
    }
]

猜你喜欢

转载自blog.csdn.net/sanmi8276/article/details/108749676