LINUX.ORG.RU

Почему так долго создается контейнер в Docker?

 ,


0

2

Запускаю Gentoo в Docker. Создание контейнера portage длится больше минуты, как правило. Итак, всё по-порядку.

Использую образы отсюда https://hub.docker.com/u/gentoo/

docker create -v /usr/portage --name portage gentoo/portage
Эта операция занимает минуту-две. Почему? Разве там не Copy-on-Write? Копируются ли данные в контейнер «portage» из образа gentoo/portage?

Детальные логи и список команд:

https://gitlab.com/anonymous0/gentoo-buildbox-friend/blob/master/.gitlab-ci.yml

https://gitlab.com/anonymous0/gentoo-buildbox-friend/builds/11595213

Можно увидеть, как долго создавался контейнер

$ time -- docker create -v /usr/portage --name portage gentoo/portage
b4586d5b393d17597a68c9bf4d95076e547ced5bd6dae6421629f66cb4aa9858
real	2m 26.86s
user	0m 0.01s
sys	0m 0.01s
Что и где ещё посмотреть?

★★

Последнее исправление: anonymous00 (всего исправлений: 2)

1) У вас в к логам билдов доступ ограничен.

2) Видимо, гитлабовский публичный CI не кеширует артефакты и каждый раз выкачивает образ заново. И судя по тому, что я получил на сферическом локалхосте, вот этот срез

RUN bzcat /portage-latest.tar.bz2 | tar -xf - -C /usr
Достаточно требователен к I/O (очень много мелких файлов), поэтому занимает так много времени.

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

1) Пофиксил. https://gitlab.com/anonymous0/gentoo-buildbox-friend/builds/11595213

2) Дело не в том, что образ выкачивается каждый раз. Образ уже выкачан до запуска команды docker create.

Вот в том и вопрос — каждый раз при запуске CI копируются файлы из image в контейнер или там CoW?

anonymous00 ★★
() автор топика
Ответ на: комментарий от anonymous00

Да, каждый раз. У данного образа /usr/portage обозначен как volume, поэтому при каждом создании контейнера из образа эти данные переезжают в новый volume.

l0stparadise ★★★★★
()
Ответ на: комментарий от l0stparadise

Можно ли как-нибудь избежать копирования? Любым способом, будь-то какой-либо механизм CoW, или монтирование в ro + rw-layer с помощью overlayfs, или что-то ещё?

anonymous00 ★★
() автор топика
Ответ на: комментарий от l0stparadise

Я понял, буду обсуждать это с тимой gentoo-containers. Спасибо за информацию.

anonymous00 ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.