Docker & Kubernetes for Developers · Урок

Подключение контейнеров через сети Docker Compose

Используйте Docker Compose для описания приложений из нескольких контейнеров и их взаимодействия через автоматически созданную мостовую сеть по именам служб

Урок 4 из 413 шагов

«Подключение контейнеров через сети 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: secret

Connecting 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/postgres

Defining 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: true

Inspecting the Network

List and inspect the network Compose created to confirm which containers are attached.

docker network ls
docker network inspect myproject_default

Quick 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 — локальная установка не требуется.

Все уроки этого курса

  1. Изучение типов сетей Docker
  2. Настройка сетей контейнеров
  3. Сохранение данных с помощью томов
  4. Подключение контейнеров через сети Docker Compose
← Назад к Docker & Kubernetes for Developers