Подключение контейнеров через сети Docker Compose
Используйте Docker Compose для описания приложений из нескольких контейнеров и их взаимодействия через автоматически созданную мостовую сеть по именам служб
«Подключение контейнеров через сети Docker Compose» — бесплатный урок Docker & Kubernetes for Developers на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Docker & Kubernetes for Developers, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Docker & Kubernetes for Developers содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Why Compose for Networking
Running many containers and wiring their networks by hand is tedious. Docker Compose describes your whole stack in one YAML file and creates a dedicated network so services can find each other.
The Default Compose Network
When you run docker compose up, Compose creates a single user-defined bridge network for the project. Every service joins it automatically, so no manual docker network create is needed.
Service Names as Hostnames
On a Compose network, each service is reachable by its service name via built-in DNS. A service named db is reachable at the hostname db from any other service.
A Minimal Compose File
Two services on one network: a web app and a database.
version: "3.9"
services:
web:
image: myapp:latest
ports:
- "8080:80"
db:
image: postgres:16
environment:
POSTGRES_PASSWORD: secretConnecting to db by Name
Inside the web container, the connection string points to the service name, not an IP:
DATABASE_URL=postgres://postgres:secret@db:5432/postgresDefining Custom Networks
You can declare named networks to isolate groups of services.
services:
web:
image: myapp
networks: [frontend]
api:
image: myapi
networks: [frontend, backend]
db:
image: postgres
networks: [backend]
networks:
frontend:
backend:Network Isolation in Practice
In the example above, web can reach api but NOT db, because they share no network. This limits the blast radius if a frontend container is compromised.
Exposing vs Publishing Ports
expose makes a port reachable only to other containers on the network. ports publishes it to the host. Internal services like databases should usually only be exposed, never published.
Aliases for Services
You can give a service extra DNS names with aliases, handy when migrating from an old hostname.
services:
db:
image: postgres
networks:
backend:
aliases:
- database
- legacy-db
networks:
backend:Connecting to External Networks
Set a network as external: true to attach services to a network created outside this Compose file, sharing it across projects.
networks:
shared:
external: trueInspecting the Network
List and inspect the network Compose created to confirm which containers are attached.
docker network ls
docker network inspect myproject_defaultQuick Check
Test what you have learned.
Recap
You learned that Docker Compose creates a network per project, lets services talk by service name, and supports custom networks for isolation, expose vs ports, aliases, and external networks.
Изучай Docker & Kubernetes for Developers с ИИ-репетитором — бесплатно
Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.
- Курсы
- 12
- Уроки
- 48
Часто задаваемые вопросы
Урок «Подключение контейнеров через сети Docker Compose» бесплатный?
Да — полный текст урока «Подключение контейнеров через сети Docker Compose» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Docker & Kubernetes for Developers, подпишись на CoddyKit PRO. Курс Docker & Kubernetes for Developers содержит 4 уроков всего.
Чему я научусь в уроке «Подключение контейнеров через сети Docker Compose»?
Используйте Docker Compose для описания приложений из нескольких контейнеров и их взаимодействия через автоматически созданную мостовую сеть по именам служб Ты практикуешь Docker & Kubernetes for Developers с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Docker & Kubernetes for Developers?
Предыдущий опыт не требуется. Docker & Kubernetes for Developers на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Подключение контейнеров через сети Docker Compose»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Docker & Kubernetes for Developers?
Да. Каждый урок Docker & Kubernetes for Developers включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Изучение типов сетей Docker
- Настройка сетей контейнеров
- Сохранение данных с помощью томов
- Подключение контейнеров через сети Docker Compose