Первый контейнер Flashcards
Как получить образ?
- Команда
docker pull <образ>
- скачать из репозитория Docker Hub - На основе готового образа создать свой через Dockerfile
- Команда
docker commit <контейнер>
- создать образ на основе контейнера
Что есть у образа?
- REPOSITORY (Название) - node, ubuntu, redis и тд (может быть
none
) - TAG (версия образа) (может быть
none
) - IMAGE ID (может заменить тег, не бывает
none
) - CREATED
- SIZE
В чём особенность слоёв образа?
Докер позволяет переиспользовать слои, из которых состоит образ. Если при скачивании образа, некоторые слои уже будут присутствовать локально, докер их скачивать не будет, а лишь переиспользует.
Что есть у контейнера?
- CONTAINER ID - идентификатор контейнера
- IMAGE - образ, на основе которого запустили контейнер
- COMMAND - команда запуска
- CREATED - время запуска
- STATUS - статус контейнера
- PORTS - порты, на которых запущен контейнер
- NAMES - имя контейнера (присваивается рандомно, если явно не указано)
Какие могут были статусы у контейнера?
- Up - поднятый контейнер
- Exited - остановленный контейнер, имеющий код выхода
Из чего состоит жизненный цикл контейнера?
docker run
- Живёт и работаетdocker stop
- Живёт и не работает - docker start
docker rm
- Не живёт
p.s. Частый случай, когда развёрнутый с нуля контейнер ещё не готов к использованию. Он поднят, но данные внутри него ещё не готовы к работе. В таком случае программе внутри контейнера нужно время, чтобы начать работать.
p.p.s. Контейнер работает пока работает программа.
Примеры команд
-
docker images
илиdocker image ls
- посмотреть список образов -
docker rmi <образ> [образ...]
илиdocker image rm <образ> [образ...]
- удалить образ(ы) -
docker run --name <имя> <образ>
- при создании присвоить имя контейнеру -
docker run --rm <образ>
- удалить контейнер после завершения его работы -
docker ps -a
илиdocker ps --all
- вывести список всех контейнеров -
docker ps -q
илиdocker ps --quiet
- вывести только айди контейнеров
Особенности команд
- Для одного и того же действия могут быть несколько команд (обычно вторая команда имеет сокращённое название для быстроты запуска)
- Опции запуска (для выполнения действия непосредственно перед запуском контейнера, например, задать имя)
- Полная (через два дефиса
--
) и сокращённая запись (через один дефис-
)
В чём отличие команды docker ps
от docker ps -a
?
-
docker ps
выводит список не всех, а только запущенных контейнеров -
docker ps -a
выводит список все контейнеров
Что такое Tag?
Это версии образов. При скачивании образа без явного указания тега, будет скачана версия latest
.
Что такое тег alpine
?
Версия образа, сокращённая настолько, насколько возможно, чтобы сохранить только нужные данные, и уменьшить объём образа.
Как скачать образ с DockerHub?
docker pull <образ>
docker pull <образ>:<версия>
Версия может как содержать номер, например, 16, так и alpine
. Версия latest
скачивается без явного указания тега.
Как удалить образ?
Удалить образ можно командой docker rmi
с указанием либо имени и тега образа (docker rmi <имя>:<тег>
), либо его айди (docker rmi <id>
).