Шпаргалка по командам докера
docker system prune
- удалит остановленные контейнеры, все висячие образы и все неиспользуемые сети
контейнер
docker run имя_контейнера
- запуск контейнера (можно указать образ:тэг, тогда поднимется новый контейнер)-d
- в фоновом режиме--name название_контейнера
- со своим названием контейнера-p 8080:80
- проброска порта (портНаХостовойМашине:портКонтейнера)-e MYSQL_ROOT_PASSWORD=123456
- пробрасывает переменные окружения внутрь контейнера
docker stop имя_контейнера
- остановка контейнера (вместо имени можно указывать id)docker rm имя_контейнера
- удаление контейнераdocker exec -ti название_контейнера /bin/sh
- заходим в запущенный контейнерdocker logs -f название_контейнера
- посмотреть логи внутри контейнераdocker ps
- отображает список запущенных контейнеров-a
- отображать все, в том числе и не запущенные контейнеры
docker inspect название_контейнера
- показать данные контейнера (ip, пути к volumes и т.д.)docker container prune
- удаляет ВСЕ остановленные контейнеры.
images
docker build --tag название_образа .
- сборка образа контейнера на базе Dockerfile (точка - текущий репозиторий)docker images
- выводит список образов верхнего уровня (образ внутри может использовать несколько других образов)-a
- выводит все образы на хост-машине
docker image rm название_образа
- удаление образаdocker image prune -a
- удалить ВСЕ образы, на которые не ссылается ни один существующий контейнер
docker-compose
docker-compose up
- Создание/обновление и запуск контейнеров приложения (запуск из директории с файлом docker-compose.yml)-d
- в фоне
docker-compose start
- запускdocker-compose stop
- остановкаdocker-compose down
- остановка и удалениеdocker-compose logs -f
- логи всех сервисов приложения
разное
docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v $PWD/portainer:/data portainer/portainer
- web оболочка для управления докером
Dockerfile
Dockerfile — скрипт, который автоматически выполняет определенные действия или команды в базовом образе, для формирования нового образа.
Слои в итоговом образе создают только инструкции FROM, RUN, COPY и ADD (порядок важен!). Другие инструкции что-то настраивают (например — открыть какой-то порт и т.д.).
FROM - базовый образ. FROM php:7.2-apache
RUN – выполняет консольную команду в контейнере. apt-get install -y vim
ADD - добавляет файлы или папки из нашего билд-окружения в образ. ADD software.lic /opt/application/software.lic
COPY - отличается от ADD тем, что предназначена для копирования локальных файлов из билд-контекста и не поддерживает распаковки файлов COPY conf.d/ /etc/apache2/
VOLUME - монтирует директории хоста в директорию контейнера
Сначала создаем папку, в ней уже докерфайл. Созданная директория — билд-окружение, в которой Docker вызывает контекст или строит контекст. Docker загрузит контекст в папке в процессе работы Docker–демона, когда будет запущена сборка образа.
Смонтировать и пробросить порты (порт_хостовой:порт_докера) в докер файле нельзя, т.к. из него собирается образ, а образ должен быть универсальным и не должен привязываться к конкретной машине. Все это можно сделать в docker-compose.yml
docker-compose
Docker Compose используется для одновременного управления несколькими контейнерами, входящими в состав приложения.
Пример
Файловая структура
1 | docker/ |
Папка db монтируется к контейнеру БД, таким образом данные БД хранятся на хостовой машине, а не в контейнере.
Dockerfile
1 | FROM php:7.2-apache |
Флаг -y нужен чтобы подавлять одобрение на установку в консоле, без него выкенит ошибку.
docker-compose.yml
1 | version: '3.1' |
volumes - монтировать каталог хоста в контейнер (host : container)
portainer - это простое решение для управления Docker.
Полезные ссылки: