Скрипт, който показва името, портовете и IP адреса на Docker контейнерите

Какво е Docker?

Docker е платформа за контейнеризиране, която пакетира и изпълнява вашето приложение и всички негови зависимости заедно под формата на докер контейнер, за да гарантира, че приложението ви работи безпроблемно във всяка среда.

Какво е контейнер?

Docker Container е стандартизирана единица, която може да бъде създадена в движение за внедряване на конкретно приложение или среда. Може да е контейнер на Ubuntu, контейнер CentOs и т.н., за да изпълни изцяло изискването от гледна точка на операционната система. Освен това може да бъде контейнер, ориентиран към приложение, като контейнер CakePHP или контейнер Tomcat-Ubuntu и т.н

Как да си направим скрипт, който да показва името, портовете и IP адреса на Docker контейнерите?

Всъщност, това не е никак сложен процес. За да създадем този скрипт следвайте стъпките:

Първо трябва да създадем файл с примерно име docker-ports.sh

vi docker-ports.sh

Във файла docker-ports.sh добавяме следното съдържание:

#!/bin/bash

# Get container IDs
containers=$(docker ps -q)

# Loop through container IDs
for container in $containers; do
    # Get container name
    name=$(docker inspect --format '{{ .Name }}' $container)
    # Remove leading slash from container name
    name=${name:1}
    # Get container IP address
    ip=$(docker inspect --format '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $container)
    # Get container ports
    ports=$(docker port $container)
    # Print container name, IP address, and ports
    echo "$name IP address: $ip"
    echo "$name ports:"
    echo "$ports"
    echo ""
done

Записваме информацията с натискане на :wq

Дава ме му права за изпълнение чрез:

chmod +x docker-ports.sh

След това го изпълняваме с:

./docker-ports.sh

Обърнете внимание, че трябва да имате инсталиран Docker на машината си.

Този скрипт ще изведе името, IP адреса и портовете на всички работещи Docker контейнери.

Обърнете внимание, че за да се покаже IP адресът на контейнера, трябва да имате създадена мрежа за Docker контейнерите. Ако не сте създали такава мрежа, можете да я създадете с командата docker network create <име_на_мрежата>.

Федя Серафиев

Федя Серафиев

Федя Серафиев e собственик на уебсайта urocibg.eu. Той намира удовлетворение в това да помага на хората да решават и най-сложните технически проблеми. Сегашната му цел е да пише лесни за следване статии, така че подобни проблеми изобщо да не възникват.

Благодарим ви за прочитането на статията! Ако намерихте информацията за полезна, можете да дарите посредством бутоните по-долу: