Основы Docker

·

3 min read

🚀 Docker с нуля: Полный разбор для новичков

Docker — это платформа для контейнеризации, которая позволяет упаковать приложение и его зависимости в один контейнер, который можно запустить где угодно.

🔹 1. Установка Docker (Ubuntu 22.04)

📌 Шаг 1: Удаляем старые версии

sudo apt-get remove docker docker-engine docker.io containerd runc

📌 Шаг 2: Устанавливаем необходимые пакеты

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

📌 Шаг 3: Добавляем официальный репозиторий Docker

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc > /dev/null
sudo chmod a+r /etc/apt/keyrings/docker.asc
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update

📌 Шаг 4: Устанавливаем Docker

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

📌 Шаг 5: Проверяем установку

docker --version
docker-compose --version

🔹 2. Основные команды Docker

📌 Запуск контейнера

docker run ubuntu echo "Hello, Docker!"

🔹 Запускает контейнер с образом ubuntu и выводит Hello, Docker!.

📌 Интерактивный запуск контейнера

docker run -it ubuntu bash

🔹 Открывает терминал внутри контейнера.

📌 Вывести список работающих контейнеров

docker ps

🔹 Показывает активные контейнеры.

📌 Вывести все контейнеры (включая остановленные)

docker ps -a

📌 Остановить контейнер

docker stop CONTAINER_ID

📌 Запустить уже существующий контейнер

docker start CONTAINER_ID

📌 Удалить контейнер

docker rm CONTAINER_ID

📌 Удалить все контейнеры

docker rm $(docker ps -aq)

📌 Удалить все образы

docker rmi $(docker images -q)

📌 Удалить неиспользуемые ресурсы (контейнеры, образы, сети)

docker system prune -a

🔹 3. Docker Images (Образы)

Образ — это шаблон для контейнера.

📌 Список локальных образов

docker images

📌 Скачать образ из Docker Hub

docker pull ubuntu

📌 Создать свой образ (Dockerfile)

Создаём Dockerfile:

FROM ubuntu:latest
RUN apt update && apt install -y curl
CMD ["echo", "Custom Ubuntu Image"]

Собираем образ:

docker build -t my-ubuntu .

Запускаем контейнер из образа:

docker run my-ubuntu

🔹 4. Docker Volumes (Тома)

Тома позволяют сохранять данные между перезапусками контейнера.

📌 Создать том

docker volume create my_volume

📌 Список томов

docker volume ls

📌 Примонтировать том к контейнеру

docker run -d -v my_volume:/data ubuntu

📌 Удалить том

docker volume rm my_volume

🔹 5. Docker Networks (Сети)

По умолчанию Docker создаёт сеть bridge.

📌 Создать сеть

docker network create my_network

📌 Список сетей

docker network ls

📌 Подключить контейнер к сети

docker network connect my_network container_name

🔹 6. Docker Compose (Оркестрация нескольких контейнеров)

Создаём docker-compose.yml:

version: '3.8'
services:
  app:
    image: nginx
    ports:
      - "8080:80"
  db:
    image: postgres
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: password

📌 Запустить Compose

docker compose up -d

📌 Остановить

docker compose down

🔹 7. Запуск контейнера с пересылкой портов

docker run -d -p 8080:80 nginx

Теперь Nginx доступен по адресу http://localhost:8080.


🔹 8. Проверка логов контейнера

docker logs CONTAINER_ID

🚀 Вывод

Docker — мощный инструмент, который позволяет быстро разрабатывать, тестировать и деплоить приложения. Его ключевые возможности:

  • Изоляция (каждое приложение в своём контейнере)

  • Повторяемость (одно и то же окружение на разных машинах)

  • Гибкость (масштабируемость через docker-compose и swarm)