Pertanyaan Bagaimana cara mendapatkan alamat IP penyimpan Docker dari host?


Apakah ada perintah yang dapat saya jalankan untuk mendapatkan alamat IP pengirim langsung dari host setelah penampung baru dibuat?

Pada dasarnya, setelah Docker membuat penampung, saya ingin menggulung skrip saya sendiri dan skrip konfigurasi penampung.


763
2018-06-17 22:10


asal


Jawaban:


docker inspect <container id> | grep "IPAddress"


115
2018-01-04 20:01



Itu --format pilihan pemeriksaan datang untuk menyelamatkan.

Sintaks klien Docker modern:

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

Sintaks klien Old Docker:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' container_name_or_id

Yang hanya akan mengembalikan alamat IP.


1164
2017-12-19 15:56



Kamu dapat memakai docker inspect <container id>

Contoh:

CID=$(docker run -d -p 4321 base nc -lk 4321);
docker inspect $CID

451
2018-06-17 22:37



Pertama-tama dapatkan ID penampung:

docker ps

(Kolom pertama untuk ID penampung)

Gunakan ID penampung untuk menjalankan:

docker inspect <container ID>

Di bagian bawah, di bawah "NetworkSettings", Anda dapat menemukan "IPAddress"

Atau Lakukan saja:

docker inspect <container id> | grep "IPAddress"

280
2017-09-19 22:08



Untuk mendapatkan semua nama penampung dan alamat IP mereka hanya dalam satu perintah.

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

Jika Anda menggunakan docker-compose perintahnya adalah ini:

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

Outputnya adalah:

/containerA - 172.17.0.4
/containerB - 172.17.0.3
/containerC - 172.17.0.2

84
2018-01-12 16:52



Tambahkan skrip shell ini di Anda ~/.bashrc atau file yang relevan:

docker-ip() {
  docker inspect --format '{{ .NetworkSettings.IPAddress }}' "$@"
}

Kemudian, untuk mendapatkan alamat IP dari sebuah wadah, cukup lakukan ini:

docker-ip YOUR_CONTAINER_ID

Untuk versi baru Docker, silakan gunakan yang berikut ini:

docker-ip() {
        docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' "$@"
}

79
2017-11-18 00:04



Tampilkan semua alamat IP penampung:

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

30
2018-04-27 07:50



Di Docker 1.3+, Anda juga dapat memeriksanya melalui langkah-langkah di bawah ini:

Masukkan Docker yang sedang berjalan:

docker exec [container-id or container-name] cat /etc/hosts
172.17.0.26 d8bc98fa4088
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.17 mysql

28
2017-11-02 00:05



Menjalankan:

docker ps -a

Ini akan menampilkan gambar buruh pelabuhan aktif:

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS                       PORTS               NAMES
3b733ae18c1c        parzee/database     "/usr/lib/postgresql/"   6 minutes ago       Up 6 minutes                 5432/tcp            serene_babbage

Gunakan nilai ID CONTAINER:

docker inspect <CONTAINER ID> | grep -w "IPAddress" | awk '{ print $2 }' | head -n 1 | cut -d "," -f1

"172.17.0.2"


18
2018-01-18 20:01



Seperti versi Docker 1.10.3, buat 20f81dd

Kecuali Anda memberitahukan Docker, Docker selalu meluncurkan kontainer Anda di jaringan jembatan. Jadi Anda dapat mencoba perintah ini di bawah ini:

docker network inspect bridge

Yang kemudian harus mengembalikan bagian Kontainer yang akan menampilkan alamat IP untuk menjalankan kontainer itu.

[
    {
        "Name": "bridge",
        "Id": "40561e7d29a08b2eb81fe7b02736f44da6c0daae54ca3486f75bfa81c83507a0",
        "Scope": "local",
        "Driver": "bridge",
        "IPAM": {
            "Driver": "default",
            "Options": null,
            "Config": [
                {
                    "Subnet": "172.17.0.0/16"
                }
            ]
        },
        "Containers": {
            "025d191991083e21761eb5a56729f61d7c5612a520269e548d0136e084ecd32a": {
                "Name": "drunk_leavitt",
                "EndpointID": "9f6f630a1743bd9184f30b37795590f13d87299fe39c8969294c8a353a8c97b3",
                "IPv4Address": "172.17.0.2/16",
                "IPv6Address": ""
            }
        },
        "Options": {
            "com.docker.network.bridge.default_bridge": "true",
            "com.docker.network.bridge.enable_icc": "true",
            "com.docker.network.bridge.enable_ip_masquerade": "true",
            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",
            "com.docker.network.bridge.name": "docker0",
            "com.docker.network.driver.mtu": "1500"
        }
    }
]

18
2018-04-08 14:06