docker guru ищется
Правила форума
Пожалуйста, ознакомьтесь с правилами данного форума
Пожалуйста, ознакомьтесь с правилами данного форума
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
example - traefik
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/bash
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 zsh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"zsh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 csh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"csh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 ksh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"ksh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/bash
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/bash\": stat /bin/bash: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 /bin/sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"/bin/sh\": stat /bin/sh: no such file or directory"
[root@1022 ~]# docker exec -it e3a01643c1f8 sh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"sh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 zsh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"zsh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 csh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"csh\": executable file not found in $PATH"
[root@1022 ~]# docker exec -it e3a01643c1f8 ksh
rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting container process caused "exec: \"ksh\": executable file not found in $PATH"
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
Каким образом обеспечить перзистенс данных при стопе/старте ? Два других случая я не рассматриваю - они специально сделаны чтобы сбросить данные на диск.Stanislav писал(а):Запуск апликухи - часто команда шелла.borei писал(а):А зачем он ? Докер должен запустить апликуху и все. Если нужно ковыряются в рабочем имидже - ну да тогда да. Но все изменения сгорят после рестарта. Так что надобность шелла под вопросом.Stanislav писал(а):Почему?borei писал(а):Не факт совершенно.Stanislav писал(а): Это как? А имаж они как делают? Минимум sh должен быть
Изменения не сгорят после стоп/старт контейнера.
Изменения не сгорят, если вы сделаете коммит.
Изменения не сгорят, если вы прокидываете вольюм.
Когда вы делаете имаж, вы выполняете некоторые команды (посмотрите какой-нить докер-файл) - каждая строка выполняются так: запускается временный контейнер, в нем запускается шелл, выполняющий ваши команды, после выполнения команды делается коммит, и т.д. построчно.
По поводу шелла. См мои примеры выше - я других шелла не знаю. Апликуха под докером работает в окружение cgroup, а это фактически хост система. Ни какой изоляции там и близко нет. Так что дернуть шелл из хоста не должно быть проблемой. Даже если это и не возможно не почему докер сам не может вызвать команды при генерации имиджа - там ведь только fork/exec системные вызовы и все.
- Stanislav
- Mr. Minority Report
- Сообщения: 43479
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby
Re: docker guru ищется
Ну остановили контейнер - ну и что? Почему что-то должно потеряться? Вы ведь можете заребутить хост и контейнеры после ребута будут работатьborei писал(а):Каким образом обеспечить перзистенс данных при стопе/старте ? Два других случая я не рассматриваю - они специально сделаны чтобы сбросить данные на диск.Stanislav писал(а):Запуск апликухи - часто команда шелла.borei писал(а):А зачем он ? Докер должен запустить апликуху и все. Если нужно ковыряются в рабочем имидже - ну да тогда да. Но все изменения сгорят после рестарта. Так что надобность шелла под вопросом.Stanislav писал(а):Почему?borei писал(а): Не факт совершенно.
Изменения не сгорят после стоп/старт контейнера.
Изменения не сгорят, если вы сделаете коммит.
Изменения не сгорят, если вы прокидываете вольюм.
Когда вы делаете имаж, вы выполняете некоторые команды (посмотрите какой-нить докер-файл) - каждая строка выполняются так: запускается временный контейнер, в нем запускается шелл, выполняющий ваши команды, после выполнения команды делается коммит, и т.д. построчно.
По поводу шелла. См мои примеры выше - я других шелла не знаю. Апликуха под докером работает в окружение cgroup, а это фактически хост система. Ни какой изоляции там и близко нет. Так что дернуть шелл из хоста не должно быть проблемой. Даже если это и не возможно не почему докер сам не может вызвать команды при генерации имиджа - там ведь только fork/exec системные вызовы и все.
Команды в докер-файле могут быть разные... докер не хочет ничего о них знать
Дернуть из хоста? Хм... очень популярна команда при создании имажа - yum или apt-get, а если вы на хосте РедХат билдите Убунту имаж? Где вы на хосте возьмете apt-get?
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
Хорошо оставим дернут с хоста, там действительно много вопросов всплывает.
Но
Почему докер не может запустить команду при построении имиджа?
Чего делать с примером который я привёл - шелл я так и не нашёл.
Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
Но
Почему докер не может запустить команду при построении имиджа?
Чего делать с примером который я привёл - шелл я так и не нашёл.
Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
- Stanislav
- Mr. Minority Report
- Сообщения: 43479
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby
Re: docker guru ищется
Может это к разработчикам докера вопрос? Но я их понимаю - они делают проще и надежнее.borei писал(а):Хорошо оставим дернут с хоста, там действительно много вопросов всплывает.
Но
Почему докер не может запустить команду при построении имиджа?
Чего делать с примером который я привёл - шелл я так и не нашёл.
Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
Ну... если задаться такой целью, то, разумеется, можно по каким-то причинаm убить шелл
Прихлопнуть контейнер (docker rm) и стоп/старт (docker stop / docker start) - это разные вещи - не так ли?
-
- Зритель
- Сообщения: 9
- Зарегистрирован: 04 май 2012, 02:17
Re: docker guru ищется
Образ контейнера из вашего примера создан на базе scratch (https://hub.docker.com/_/scratch/). Там вообще практически ничего нет:borei писал(а):Чего делать с примером который я привёл - шелл я так и не нашёл.
Код: Выделить всё
drwxr-xr-x 4 root root 4096 Mar 16 16:13 dev
-rwxr-xr-x 1 root root 0 Mar 16 16:13 .dockerenv
drwxr-xr-x 3 root root 4096 Mar 16 16:13 etc
drwxr-xr-x 2 root root 4096 Mar 16 16:13 proc
drwxr-xr-x 2 root root 4096 Mar 16 16:13 sys
-rwxrwxr-x 1 root root 49461760 Mar 16 00:18 traefik
Файл не останется, если он не создан на внешнем volume. Таков принцип работы системы хранения в докере - изначально используется образ файловой системы из образа + дополнительный слой для изменений. Как только контейнер удаляется, то слой для изменений удаляется тоже.Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
Ну я собственность этом и говорил:winamp писал(а):Образ контейнера из вашего примера создан на базе scratch (https://hub.docker.com/_/scratch/). Там вообще практически ничего нет:borei писал(а):Чего делать с примером который я привёл - шелл я так и не нашёл.Если же сильно хочется шелл, то можно туда скопировать статически собраный какой-нибудь busybox через docker cp и затем docker exec.Код: Выделить всё
drwxr-xr-x 4 root root 4096 Mar 16 16:13 dev -rwxr-xr-x 1 root root 0 Mar 16 16:13 .dockerenv drwxr-xr-x 3 root root 4096 Mar 16 16:13 etc drwxr-xr-x 2 root root 4096 Mar 16 16:13 proc drwxr-xr-x 2 root root 4096 Mar 16 16:13 sys -rwxrwxr-x 1 root root 49461760 Mar 16 00:18 traefik
Файл не останется, если он не создан на внешнем volume. Таков принцип работы системы хранения в докере - изначально используется образ файловой системы из образа + дополнительный слой для изменений. Как только контейнер удаляется, то слой для изменений удаляется тоже.Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
1) шелл не обязательный элемент
2) контейнер не сохраняет созданные в рамках имеджа данные, если об этом специально на запрошено.
- Stanislav
- Mr. Minority Report
- Сообщения: 43479
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby
Re: docker guru ищется
А можно в "фром скратче" написать?winamp писал(а):Образ контейнера из вашего примера создан на базе scratch (https://hub.docker.com/_/scratch/). Там вообще практически ничего нет:borei писал(а):Чего делать с примером который я привёл - шелл я так и не нашёл.
RUN for i in `seq 1 10`; do touch /filename$i; done
А если контейнер останавливается и снова стартует?winamp писал(а):Файл не останется, если он не создан на внешнем volume. Таков принцип работы системы хранения в докере - изначально используется образ файловой системы из образа + дополнительный слой для изменений. Как только контейнер удаляется, то слой для изменений удаляется тоже.Зайди в рабочий контейнер, создай файл , прихлопни контейнер. Запусти контейнер. Файл останется ?
- Vims
- Northern Yeti
- Сообщения: 21314
- Зарегистрирован: 17 фев 2003, 15:53
- Откуда: Magadan - Vancouver
- Контактная информация:
Re: docker guru ищется
посмотрел на ваши баталии и вот тут всплывает фраза в голове - че я такой тупой
а можно хай левел функциональности докера. для чайников
спасибо
а можно хай левел функциональности докера. для чайников
спасибо
-
- Зритель
- Сообщения: 9
- Зарегистрирован: 04 май 2012, 02:17
Re: docker guru ищется
написать-то можно, только он с ошибкой выпадет. RUN с аргументом в виде строки выполняется через sh, которого в базовом образе нет.Stanislav писал(а): А можно в "фром скратче" написать?
RUN for i in `seq 1 10`; do touch /filename$i; done
Смотря как он был создан. Если с аргументом --rm в docker run, то увы. Если без него - то данные останутся, да. Только практической ценности в этом нет:winamp писал(а): А если контейнер останавливается и снова стартует?
1. Любая оверлейная файловая система заведомо медленней базовой.
2. Данные останутся прибитыми гвоздями к контейнеру, в котором, вероятно выполняется софтина. Захотите обновить софтину через докер - данные пропадут.
-
- Зритель
- Сообщения: 9
- Зарегистрирован: 04 май 2012, 02:17
Re: docker guru ищется
Основной смысл - запуск приложений в заранее прогнозируемой среде. С необходимыми либами и прочим окружением.Vims писал(а):посмотрел на ваши баталии и вот тут всплывает фраза в голове - че я такой тупой
а можно хай левел функциональности докера. для чайников
спасибо
Собрал один образ - запускаешь его на машине разработчика, CI сервере и на продакшне. Вне зависимости от ОС, в теории, результат одинаковый и предсказуемый. На практике же "есть нюансы".
Ну и в связи с популярностью, сейчас много разных приблуд развелось около докера, позволяющих строить различного рода кластеры - от registrstor + consul до kubernetes.
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
Были нормальные виртуальные машины, нет этого показалось мало, точнее много, и начали стругать всякие методы изоляции чтобы подэкономит ресурсы. Но вроде система рабочая, правда когда она разрастается в более менее приличный комплекс - штук сорок контейнеров начинаются нюансы - как организовавать сеть, логгирование мониторинг и далее по списку.winamp писал(а):Основной смысл - запуск приложений в заранее прогнозируемой среде. С необходимыми либами и прочим окружением.Vims писал(а):посмотрел на ваши баталии и вот тут всплывает фраза в голове - че я такой тупой
а можно хай левел функциональности докера. для чайников
спасибо
Собрал один образ - запускаешь его на машине разработчика, CI сервере и на продакшне. Вне зависимости от ОС, в теории, результат одинаковый и предсказуемый. На практике же "есть нюансы".
Ну и в связи с популярностью, сейчас много разных приблуд развелось около докера, позволяющих строить различного рода кластеры - от registrstor + consul до kubernetes.
- LeoV
- Графоман
- Сообщения: 14497
- Зарегистрирован: 02 июн 2012, 15:41
- Откуда: Графство O'Mан
- Контактная информация:
Re: docker guru ищется
Они только этим и занимаются, ничего другого не знают. А у тебя это хобби. Сравни рыбака с удочкой и рыбака с динамитом.Vims писал(а):посмотрел на ваши баталии и вот тут всплывает фраза в голове - че я такой тупой
а можно хай левел функциональности докера. для чайников
спасибо
- Stanislav
- Mr. Minority Report
- Сообщения: 43479
- Зарегистрирован: 19 окт 2005, 16:33
- Откуда: Moscow - Richmond - New Wesт - Burnaby
Re: docker guru ищется
Borei, так нужен шелл или не нужен?winamp писал(а):написать-то можно, только он с ошибкой выпадет. RUN с аргументом в виде строки выполняется через sh, которого в базовом образе нет.Stanislav писал(а): А можно в "фром скратче" написать?
RUN for i in `seq 1 10`; do touch /filename$i; done
ИМХО вы тут что-то путаетеwinamp писал(а):Смотря как он был создан. Если с аргументом --rm в docker run, то увы. Если без него - то данные останутся, да. Только практической ценности в этом нет:Stanislav писал(а): А если контейнер останавливается и снова стартует?
1. Любая оверлейная файловая система заведомо медленней базовой.
2. Данные останутся прибитыми гвоздями к контейнеру, в котором, вероятно выполняется софтина. Захотите обновить софтину через докер - данные пропадут.
Как это нет практической ценности? А зачем тогда сделали команду docker start - которая запускает остановленный (docker stop) контейнер? Зачем тогда опция --restart в docker run?
1. и как это относится к ценности данных?
2. можно ведь и не прибивать гвоздями, а прокинуть вольюм?
-
- Маньяк
- Сообщения: 4874
- Зарегистрирован: 18 авг 2008, 14:51
Re: docker guru ищется
Я говорил что шелл не обязателен, а нужен он или не нужен зависит от задачи.Stanislav писал(а):Borei, так нужен шелл или не нужен?winamp писал(а):написать-то можно, только он с ошибкой выпадет. RUN с аргументом в виде строки выполняется через sh, которого в базовом образе нет.Stanislav писал(а): А можно в "фром скратче" написать?
RUN for i in `seq 1 10`; do touch /filename$i; done
ИМХО вы тут что-то путаетеwinamp писал(а):Смотря как он был создан. Если с аргументом --rm в docker run, то увы. Если без него - то данные останутся, да. Только практической ценности в этом нет:Stanislav писал(а): А если контейнер останавливается и снова стартует?
1. Любая оверлейная файловая система заведомо медленней базовой.
2. Данные останутся прибитыми гвоздями к контейнеру, в котором, вероятно выполняется софтина. Захотите обновить софтину через докер - данные пропадут.
Как это нет практической ценности? А зачем тогда сделали команду docker start - которая запускает остановленный (docker stop) контейнер? Зачем тогда опция --restart в docker run?
1. и как это относится к ценности данных?
2. можно ведь и не прибивать гвоздями, а прокинуть вольюм?
По поводу того остаются ли данные после стопа старта я сегодня проверю - чего гадать то.