Предлагаю вашему вниманию небольшую, написанную на коленке, но полезную шпаргалку по минимально необходимым командам для управления Docker.
Установка
https://docs.docker.com/get-docker/
Запуск контейнера
docker run redis # Скачается latest
или
docker run redis:5.0
или
docker run redis:latest
docker run -d redis # Запуск в фоне
docker run ubuntu sleep 500 # Чтобы контейнер работал, в нём должен быть какой-нибудь процесс, иначе контейнер закроется после запуска.
docker run -it [name] # Включить интерактивный режим и консоль
docker run -p 80:5000 redis # Проброс порта
Прикрепить контейнер к консоли
docker attach [ID|Name]
Передать команду в контейнер
docker exec [ID|Name] [command]
Список контейнеров
docker ps -a # Все
docker ps # Запущенные
или
docker container ls
Остановка контейнера
docker stop [ID|Name]
Удалить контейнер
docker rm [ID|Name] # Контейнер должен быть остановлен
или
docker container rm [ID|Name]
Очистка контейнеров и сопутствующего
docker system df # просмотр занятого пространства
docker volume prune # очистка томов
docker container prune # очистка всех остановленных контейнеров
docker image prune # очистка образов
docker network prune # очистка сетей
docker system prune # очистка всего и сразу
docker system prune -af # очистка всего и сразу, без подтверждений
Список образов
docker images
Удалить образ
docker rmi [ID|Name]
или
docker container rm [ID|Name]
Скачать образ
docker pull [name]
Файловая система
/var/lib/mysql # Дефолтное место хранения данных mysql в контейнере. Удалится при остановке контейнера.
/opt/datadir # Создадим место хранения на хостовой системе.
docker run -v /opt/datadir/:/var/lib/mysql mysql # Запускаем контейнер с сохраненем данных на внешнее хранилище
Детальная информация
docker inspect [ID|name]
Логи
docker logs [ID|name]
История сборки контейнера
docker history
Пример dockerfile для сборки контейнера
FROM ubuntu
RUN apt-get update
RUN apt-get install python3 python3-pip
RUN pip3 install flask
COPY app.py /opt/app.py
ENTRYPOINT FLASK_APP=/opt/app.py flask run --host=0.0.0.0 --port=5000
Запуск dockerfile
docker build . -t [name_repo]
Дать имя образу
docker tag [ID] [name]
Пуш изменений
docker login # Ввести креды репы
docker push [repo:tag]
Передача переменных в контейнер
docker run -e ENV_NAME=somebody [Name]
docker inspect [Name] #узнать какие есть переменные (раздел Env)
Docker compose
docker compose build # Сборка пакета
docker compose up # Запуск проекта
docker compose down # Выключение
docker compose logs -f [service name] # Журналы сервисов
docker compose ps # Список контейнеров
docker compose exec [service name] [command] # Передать команду
docker compose images # Список образов