Основы Docker
🚀 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
)