Инструменты пользователя

Инструменты сайта


linux:containers:docker-deep

Это старая версия документа!


Docker

Прежде всего это средство изоляции процесса (задачи). Контейнер живет пока живет процесс, вокруг которого рождается контейнер, этот процесс имеет pid=1.
Рядом с этим процессом можно порождать сколько угодно других процессов, но убив (перезагрузив) pid=1, контейнер выходит.
Внутри контейнера имеется расположение директорий идентичное исходному дистрибутиву.
Данные созданные внутри контейнера остаются только внутри контейнера, удаляются вместе с контейнером поэтому нужные данные в нем не хранят, а выносят наружу, например в хостовую ОС.

Контейнеры хранятся в хранилищах, т.н. docker registry, общедоступные, приватные и т.д. Это единое место хранения и обмена контейнерами

Скачать образ из репозитория:

# docker pull wallarm/node

Загрузить образ в репозиторий:

# docker push example.com:5000/my_image

Запустить свой registry можно всего одной командой:

# docker run -d -p 5000:5000 --restart=always --name registry registry:2

docker образ

Принцип контейнера в том что берется исходный контейнер, чистая ОС, т.е. ядро, все изменения (настройка) регистрируются в слоях.
Настройка прописывается в скрипте Dockerfile т.е. каждый слой контейнера это результат работы команды в этом файле.
Т.е. образ это шаблон, на основе которого вы будете запускать контейнеры. Все что запускается на основе этого образа и есть контейнер (инстанс), с одного образа можно запускать несколько одинаковых копий этого образа, далее из этого контейнера можно создать новый образ (шаблон). Хранится все это в /var/lib/docker.

Достоинство в том что слои переиспользуются, т.е. что то типа дерева изменений и можно использовать с любого уровня.., я так думаю.. «Например корневой слой с debian будет использоваться всеми контейнерами, основанными на debian. Если ваш второй слой, например, установка nginx, а третий — положить конфиг, то при изменении конфига и сборке нового образа, он будет состоять из 2-х старых слоев и одним новым.» так сказано на ресурсе.

Список образов в вашей системе:

# docker images

Список контейнеров:

# docker ps
# 
# 
# 
# 
linux/containers/docker-deep.1626929293.txt.gz · Последнее изменение: 2021/07/22 04:48 — admin