Три типичные ошибки новичков в Docker и как их избежать

Категория: линукс

1️⃣ Не используете Docker Compose для многосервисных стеков

Запуск отдельного контейнера - это лишь верхушка айсберга. Когда сервисы зависят друг от друга (например, веб‑приложение + БД), лучше описать их в docker‑compose.yaml и запустить одной командой docker compose up.

  • Пример минимального файла:
services:
app:
image: my/app:latest
ports: ["8080:80"]
depends_on: [db]
db:
image: postgres:14
environment:
POSTGRES_USER: app
POSTGRES_PASSWORD: secret
POSTGRES_DB: appdb
volumes: ["pgdata:/var/lib/postgresql/data"]
volumes:
pgdata:
  • Плюсы:
    • Автоматическое создание сетей и томов.
    • Ясная декларация зависимостей.
    • Один‑разовое обновление образов и перезапуск всех сервисов.

2️⃣ Запускаете процессы в контейнере от root

По умолчанию контейнеры используют UID 0 хоста. Если в образе есть уязвимость, злоумышленник может "выпрыгнуть" из контейнера и получить root‑доступ к системе.

Что делать:

Способ Как включить Когда подходит
Rootless‑режим Docker dockerd-rootless-setuptool.sh install Если хотите полностью избавиться от root‑прав
Флаг --user docker run --user 1000:1000 ... Для простых контейнеров, где нужен обычный пользователь
USER в Dockerfile USER appuser При построении собственного образа
Podman podman run ... Если хотите "из коробки" без root

3️⃣ Не используете UI, автодополнение и алиасы

Длинные команды (например, запуск Pi‑hole) быстро "засоряют" терминал.

  • Терминальный UI - lazydocker показывает контейнеры, образы, тома и сети в виде панелей, позволяя управлять ими клавишами.
  • Shell‑completion - включите автодополнение (source /usr/share/bash-completion/completions/docker) и получайте подсказки по опциям и именам контейнеров нажатием Tab.
  • Алиасы - сократите часто используемые команды:
alias dps='docker ps'
alias dcu='docker compose up -d'
alias dcl='docker compose down'

Кратко:

  1. Docker Compose - ваш помощник для любых многоконтейнерных приложений.
  2. Не запускайте контейнеры от root; используйте rootless‑режим, --user или Podman.
  3. Ускорьте работу с UI, автодополнением и алиасами, чтобы не тратить время на набор длинных строк.

Эти простые приёмы избавят от большинства "болей" при первом знакомстве с Docker и помогут быстрее перейти к продуктивной работе.





 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *



Карта сайта
Copyright © 2025  
Clicky