Это теория-чистая таблица, которая дополняет Docker Commands Cheatshets. Я считаю, что такая концепция повторяет время от времени, когда мне нужно пересмотреть фундаментальные концепции.
Я начну со следующего изображения, которое показывает основной рабочий процесс в Docker.
[pull]->(image)->[run]->(container) ↑ ↑ ↑ | | \ [build] bash [mount] | | \ (Dockerfile) [exec] (volume)
Он показывает ключевые элементы в докере
- изображение
- Dockerfile ***
- контейнер
- тома
… и возможно
- docker-compose.yml ***
*** Встреча от экосистемы, но может не обсуждаться в этом руководстве
Диаграмма объясняет порядок работы как:
- Вы можете либо потянуть Изображение в вашей локальной машине (остается в
/var/lib/docker/overlay2
по умолчанию) - Или вы можете сборка а Изображение Из Dockerfile
Вы можете запустить Изображение к старт вверх а контейнер
- Контейнеры могут быть рассчитаны как бегущие экземпляры изображения; где изображение является исполняемым, а контейнер — это процесс. (Н.Б. Это не точное определение, потому что контейнер потенциально может быть набором нескольких процессов.)
- См. 4.1 позже
- На этапе разработки изображения Docker это хорошая идея, чтобы запустить, используя
-Д
флаг
И ты можешь выполнить Различные команды в запуске контейнеров, такие как Bash
- Вы можете одновременно запускать и выполнять команды, что вызывает путаницу между использованием
бежать
иexec
команды
- Вы можете одновременно запускать и выполнять команды, что вызывает путаницу между использованием
Поскольку контейнеры — это процессы, и все теряется, когда контейнер остановлен, вы можете использовать Тома как среднее постоянное хранилище.
- Тома могут быть созданы, а затем монтируется в контейнеры
- Или создание и монтаж объема также можно сделать в одной команде
- Обрезка
- Поскольку все эти сущности в некоторой степени подключены по умолчанию, остановка его не удаляет связанные артефакты. для которого вы можете использовать
Docker System Clrune
Команда удалить ресурсы, которые больше не нужны. Docker System Prune -a -Volumes
Сделай удобный, чтобы чистить что -то время от времени- Вы можете использовать
Docker System Prune -af -Volumes
Если вы не хотите, чтобы вас потре
- Вы можете использовать
- Время от времени вы осознаете, что объемы Docker будут обращаться специально, это связано с тем, что объемы рассматриваются как стойкие, разрушать и управлять ими, это должно потребовать большего внимания разработчику.
- Поскольку все эти сущности в некоторой степени подключены по умолчанию, остановка его не удаляет связанные артефакты. для которого вы можете использовать
Остановка/удаление
Все, что есть Бег Сначала нужно остановить, т.е. контейнеры.
Docker Stop My_container
- Это все еще не означает, что контейнер был удален, однако, он просто приостановился от выполнения
Docker RM my_container
Чтобы удалить контейнер
- Чтобы удалить изображение do
Docker Image RM
илиDocker RMI
Чтобы удалить объем do
Том Docker Rm
Объем не может быть удален, если он будет установлен в контейнер, в этих случаях вы получите подсказку в то время как удаление как
Docker PS
Чтобы перечислить все работающие контейнерыDocker ps -a
Покажите все контейнеры (показывает по умолчанию только запуск)
Docker Image LS
Список изображенийDocker Image ls -a
Показать все изображения (по умолчанию скрывает промежуточные изображения)
объем докера ls
перечисляет все объемы- Просмотр вещей может быть удобной, когда вы хотите увидеть разные атрибуты определенной сущности
Docker Container осмотрите
Docker Image Inspect
Обследование тома Docker
еще не все…
Я буду продолжать улучшать эту статью и могу добавить больше статей для этой серии, если я получу больше ответов. Например,
- Анатомия Dockerfile
- Анатомия Docker-Compose
- Основные сценарии Bash для разработки на основе Docker
- Как эффективно управлять объемами
- Лучшие практики Docker Monorepo
… и более
Фон
Несколько лет назад, когда я начал работать над контейнерами Docker; Когда Ларавел был в полном разгаре, я не знал, с чего начать.
Я был программистом для новичка полного стека, и я знал только немного CI/CD; и никогда не работал в проекте, который имеет строгие требования рабочего процесса.
Я продолжал собирать свои знания и всегда отмечал свое понимание когда -нибудь поделиться, чтобы люди, начинающие докер, легко понять.
У вас есть конкретная вещь, которая смущает вас в Docker? или что -то, что вы хотите, чтобы я добавил здесь? Давайте поговорим об этом в комментариях Анкет
Оригинал: «https://dev.to/kaziridwan/abcs-of-docker-gdf»