TGViewer
DevOps | Вопросы собесов DevOps | Вопросы собесов @easy_devops · 5.57K subscribers
Post #2686 803
🤔 Как сделать донастройку контейнера?

Донастройка контейнера может понадобиться, если:
Нужно изменить файлы конфигурации.
Установить дополнительные пакеты.
Задать переменные среды.
Подключить тома или сети.

Варианты донастройки: через Dockerfile, docker-compose, exec, тома и Entrypoint/CMD.

🟠Донастройка через Dockerfile (Лучший способ)
Если контейнер нужно модифицировать перед запуском, создаем свой Dockerfile на основе существующего образа.
FROM nginx:latest
COPY my-nginx.conf /etc/nginx/nginx.conf
CMD ["nginx", "-g", "daemon off;"]


Собираем новый образ
docker build -t my-nginx .
docker run -d -p 80:80 my-nginx


🟠Донастройка через `docker-compose` (Гибкость)
Можно задать окружение, тома, команды.
version: '3'
services:
db:
image: postgres:15
environment:
POSTGRES_USER: admin
POSTGRES_PASSWORD: secret
POSTGRES_DB: mydb
volumes:
- ./custom-postgres.conf:/etc/postgresql/postgresql.conf
command: postgres -c config_file=/etc/postgresql/postgresql.conf


Запуск
docker-compose up -d


🟠Донастройка запущенного контейнера (`docker exec`)
Если контейнер уже работает, можно внести изменения прямо в него.
docker exec -it my-container bash
apt update && apt install -y vim


🟠Донастройка через тома (Volumes)
Если нужно изменять файлы без пересборки образа, подключаем тома.
docker run -d -p 80:80 -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf nginx


🟠Использование `ENTRYPOINT` или `CMD`
Можно задать скрипт донастройки, который выполнится при старте контейнера.
FROM postgres:15
COPY setup.sh /docker-entrypoint-initdb.d/setup.sh
RUN chmod +x /docker-entrypoint-initdb.d/setup.sh


В setup.sh:
#!/bin/bash
psql -U postgres -d mydb -c "CREATE TABLE test (id SERIAL PRIMARY KEY);"


Ставь 👍 и забирай 📚 Базу знаний
More from @easy_devops
  1. Oct 11, 2026🤔 Какой будет ID в Podman? Podman использует тот же механизм контейнеризации, что и Docke…
  2. Oct 11, 2026🤔 Зачем нужен стейт в Terraform? Файл terraform.tfstate хранит текущее состояние инфрастр…
  3. Oct 10, 2026🤔 Если удалить terraform.tfstate, а потом сделать terraform init — что будет? - terraform…
  4. Oct 10, 2026🤔 Что касается безопасности где хранить переменные секреты? Хранение секретных переменных…
  5. Oct 9, 2026🤔 Можно ли на лету изменить настройки DNS в контейнере через CLI? Да, можно: docker exec…
  6. Oct 9, 2026🤔 Из чего состоит ELK стек? ELK (Elasticsearch, Logstash, Kibana) – это стек для сбора, о…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →