synology.forum архив спільноти · 2005–2022
ai.synology.forum →
ГлавнаяDocker › Доступ к командной строке и файловой системе

Доступ к командной строке и файловой системе

Mikle · 02.06.2016

Заранее извиняюсь, если тема обсуждалась. В общей теме по докеру уже мелькали эти вопросы, обсуждения, но ничего конкретного я так и не увидел. Может пропустил. Но все равно, думаю, будет полезно, иметь отдельную тему на этот счет.

 

Вопросы простые.

1. Как попасть в командную строку операционной системы внутри контейнера?

2. Как скопировать файлы из файловой системы синолоджи (хостовой системы) по определенному пути внутри контейнера?

Madnicks · 02.06.2016
2. Как скопировать файлы из файловой системы синолоджи (хостовой системы) по определенному пути внутри контейнера?

Я как бы не линуксоид, поэтому просто покажу то, до чего дошёл сам, своим мозгом.

PlexPy работает в контейнере. Мне нужен был доступ к его папке 'config'.

Создаём папку на физическом разделе сино (у меня она называется MapPlexpy) и мэпим её:

 

http://s019.radikal.ru/i641/1606/9b/8f422876234d.jpg

 

Делается это в доп. настройках контейнера. В результате получаем доступ к папке 'config' со всеми её вложениями.

 

Может быть кто-то подскажет другое решение.

Mikle · 02.06.2016

Да, это тоже я увидел. Не очень только понял относительно чего задаются эти пути.

У Вас что, /MapPlexpy - лежит прямо в корне синолоджи? И /config - тоже лежит прямо в корне файловой системы контейнера? Или это не абсолютные пути, а относительные и, если так, то относительно чего они задаются? Как вы, кстати, узнали, где именно внутри вашего контейнера располагается папка config?

 

Ну и первый мой вопрос очень актуален. Так как, даже если я сделаю такой проброс папок, все равно без командной строки не смогу проверить, положился файл по пути внутри контейнера или нет.

Madnicks · 02.06.2016
У Вас что, /MapPlexpy - лежит прямо в корне синолоджи?

Насколько я понял, это не абсолютные пути. Да, лежит прямо в корне на первом разделе. Докер видимо других и не признаёт, ибо если ему задать путь /volume1/MapPlexpy, то он вообще не понимает, о чём речь. Скорее всего он работает только с теми папками, которые находятся на том же разделе, что и он сам.

 

И /config - тоже лежит прямо в корне файловой системы контейнера? Или это не абсолютные пути, а относительные и, если так, то относительно чего они задаются? Как вы, кстати, узнали, где именно внутри вашего контейнера располагается папка config?

Как я узнал - уже точно не помню. Где-то в логах загрузки контейнера кажется наковырял. Вобщем, где оно располагается по абсолютным путям - для меня тоже загадка.

niks · 03.06.2016
Заранее извиняюсь, если тема обсуждалась. В общей теме по докеру уже мелькали эти вопросы, обсуждения, но ничего конкретного я так и не увидел. Может пропустил. Но все равно, думаю, будет полезно, иметь отдельную тему на этот счет.

 

Вопросы простые.

1. Как попасть в командную строку операционной системы внутри контейнера?

2. Как скопировать файлы из файловой системы синолоджи (хостовой системы) по определенному пути внутри контейнера?

Подключаемся к Syno по ssh и смотрим все наши контейнеры

docker ps

(нас интересует id контейнера)

Подключаемся еще одной сессией к контейнеру

docker exec -it <container_id> bash

Отключаемся от контейнера docker без его остановки: CTRL + P + Q

Можно проще

Доступ к интерфейсу терминала контейнера:

Нажмите Сведения или дважды щелкните выбранный контейнер и перейдите на вкладку Терминал.(Требуется использование веб-браузера с поддержкой WebSockets.)

Слева на вкладке "Терминал" нажмите "Основной терминал". Вы можете подключиться к терминалу главной команды выполнения контейнера.

Большинство главных команд выполнения контейнеров не имеют интерактивных интерфейсов. Нажмите кнопку Создать в левом верхнем углу, чтобы создать дополнительный терминал, выполняющий

/bin/bash

(https://www.synology.com/ru-ru/knowledgebase/DSM/help/Docker/Docker)

Как вы, кстати, узнали, где именно внутри вашего контейнера располагается папка config?

В веб интерфейсе плекса при выборе папки с фильмами для сканирования, можно посмотреть всю файловую контейнера.

Mikle · 03.06.2016

Большое спасибо. Оба способа рабочие, в консоль попасть удалось. Теперь это останется для истории.

 

Осталась лишь проблема с монтированием. Покажу как у меня что выглядит. Где я не прав?

 

Вот скриншот настроек монтирования

http://s020.radikal.ru/i700/1606/41/066536a5dafd.jpg

 

Далее демонстрирую по шагам, смотрите

Смотрю список контейнеров, нахожу container_id

Подключаюсь башем к своему контейнеру

Смотрю содержимое папки plugins, вижу 2 файла

Отключаюсь от контейнера

Смотрю содержимое папки docker/redmine_plugins, не вижу те 2 файла

А должен.

http://s019.radikal.ru/i614/1606/59/839b7857eced.jpg

 

Кто заподозрит ошибку?

Mikle · 03.06.2016

И сам себе отвечу... Путь в контейнере должен быть абсолютным. Поэтому в моем случае не /plugins, а /usr/src/redmine/plugins. Так работает. Возможно, что это зависит от контейнера, потому что все-таки выше нам показали рабочий пример с относительным путем. Но в моем случае работает только абсолютный.

 

На все вопросы ответы получены

 

dommav · 07.06.2016

Добрый вечер, за ранее простите - если уже обсуждалось это, но ранее написанные два способа не дали результат.

Проблема возникла с включением оповещение по электронной почте в Redmine.

Ставился Redmine как пакет, который в центре пакетов Синолоджи и он поставил контейнер в Docker.

Помогите пожалуйста где найти папку конфига redmine, чтобы включить оповещение по электронной почте. Synolodgy DS 1515+

замучался совсем :(

Пакет redmine сам поставил и docker - папки config нет, только длинные пути через ruby.

Может кто-то подскажет как вытащить файлы с контейнера - спрятаны далеко файлы и никакие изменения не применяются

спасибо заранее

Mikle · 08.06.2016

Ну давайте по шагам. Выполняйте команды, которые здесь уже давались выше. Агрегирую для Вас (ниже скриншот как это выглядит у меня). Ну и показывайте, что у Вас после каждого шага.

 

http://s019.radikal.ru/i638/1606/86/894cadba63ab.jpg

dommav · 08.06.2016

Вот что у меня

 

http://s020.radikal.ru/i717/1606/aa/10877f3f6e23.jpg

 

это ssh

 

http://s50.radikal.ru/i130/1606/f3/7ca670879136.jpg

 

docker/redmin - есть сразу после установки докера и редмайна

а вот где искать данную директорию /home/redmine/data? и как включить модуль e-mail и исправить файл в папке config/configuration.yml

Mikle · 09.06.2016

Не-не. Как включить модуль e-mail Вы тут не спрашивайте. Это форум не редмайна. :rolleyes:

А вот как отредактировать конкретный файл внутри контейнера - подскажу.

 

Здесь уже писали как монтировать папки. Этот момент опустим. По-хорошему, нужно в основной системе создать папку (например redmine_config) и подмонтировать ее к папке контейнера - в Вашем случае, я вижу, что это /home/redmine/redmine/config. В этом случае, после подъема контейнера, Вы сможете в основной системе открыть папку redmine_config и увидеть в ней содержимое, лежащее в контейнере по пути /home/redmine/redmine/config - далее редактируете все, что Вам нужно в ней.

 

Но здесь есть нюанс. Я рассказал об общем случае редактирования файлов. Но в Вашем случае (в зависимости от особенностей именно Вашего контейнера), на каком-то из шагов может пойти что-то не так. Например, у меня (на другом контейнере) контейнер перестал стартовать, возможно из-за того, что совместный доступ к папке config и системой контейнера и корневой системой для монтирования был невозможен. Возможно, у Вас все и получится, но в противном случае, обходной путь простой.

 

Создайте внутри контейнера свою пустую папку, например /home/redmine/redmine/mount. Для этого после подключения нужно выполнить mkdir mount. Потом выключите контейнер. Настройте монтирование Вашей папки основной системы redmine_config не на реальную папку /home/redmine/redmine/config, а на Вашу только что созданную /home/redmine/redmine/mount. Поднимите контейнер. Войдите в него. Скопируйте нужный Вам файл из /home/redmine/redmine/config в /home/redmine/redmine/mount командой cp. Из основной системы откройте папку redmine_config (к ней сейчас подмонтирована /home/redmine/redmine/mount). Увидите в ней скопированный файл. Отредактируйте его нужным Вам образом. Снова зайдите в контейнер. Скопируйте файл обратно из /home/redmine/redmine/mount в /home/redmine/redmine/config. Перезапустите контейнер.

 

Да. И это все в том случае, если в контейнере у Вас нет редактора (например vi). Если он есть, тогда, конечно же проще редактировать сразу внутри контейнера и подключать ничего не нужно

dommav · 09.06.2016
Не-не. Как включить модуль e-mail Вы тут не спрашивайте. Это форум не редмайна. :rolleyes:

А вот как отредактировать конкретный файл внутри контейнера - подскажу.

 

Здесь уже писали как монтировать папки. Этот момент опустим. По-хорошему, нужно в основной системе создать папку (например redmine_config) и подмонтировать ее к папке контейнера - в Вашем случае, я вижу, что это /home/redmine/redmine/config. В этом случае, после подъема контейнера, Вы сможете в основной системе открыть папку redmine_config и увидеть в ней содержимое, лежащее в контейнере по пути /home/redmine/redmine/config - далее редактируете все, что Вам нужно в ней.

 

Но здесь есть нюанс. Я рассказал об общем случае редактирования файлов. Но в Вашем случае (в зависимости от особенностей именно Вашего контейнера), на каком-то из шагов может пойти что-то не так. Например, у меня (на другом контейнере) контейнер перестал стартовать, возможно из-за того, что совместный доступ к папке config и системой контейнера и корневой системой для монтирования был невозможен. Возможно, у Вас все и получится, но в противном случае, обходной путь простой.

 

Создайте внутри контейнера свою пустую папку, например /home/redmine/redmine/mount. Для этого после подключения нужно выполнить mkdir mount. Потом выключите контейнер. Настройте монтирование Вашей папки основной системы redmine_config не на реальную папку /home/redmine/redmine/config, а на Вашу только что созданную /home/redmine/redmine/mount. Поднимите контейнер. Войдите в него. Скопируйте нужный Вам файл из /home/redmine/redmine/config в /home/redmine/redmine/mount командой cp. Из основной системы откройте папку redmine_config (к ней сейчас подмонтирована /home/redmine/redmine/mount). Увидите в ней скопированный файл. Отредактируйте его нужным Вам образом. Снова зайдите в контейнер. Скопируйте файл обратно из /home/redmine/redmine/mount в /home/redmine/redmine/config. Перезапустите контейнер.

 

Да. И это все в том случае, если в контейнере у Вас нет редактора (например vi). Если он есть, тогда, конечно же проще редактировать сразу внутри контейнера и подключать ничего не нужно

 

 

Спасибо, сейчас буду пробовать

dommav · 10.06.2016
Спасибо, сейчас буду пробовать

 

 

так и не получилось у меня ничего - мозг кипит

dommav · 10.06.2016
Не-не. Как включить модуль e-mail Вы тут не спрашивайте. Это форум не редмайна. :rolleyes:

А вот как отредактировать конкретный файл внутри контейнера - подскажу.

 

Здесь уже писали как монтировать папки. Этот момент опустим. По-хорошему, нужно в основной системе создать папку (например redmine_config) и подмонтировать ее к папке контейнера - в Вашем случае, я вижу, что это /home/redmine/redmine/config. В этом случае, после подъема контейнера, Вы сможете в основной системе открыть папку redmine_config и увидеть в ней содержимое, лежащее в контейнере по пути /home/redmine/redmine/config - далее редактируете все, что Вам нужно в ней.

 

Но здесь есть нюанс. Я рассказал об общем случае редактирования файлов. Но в Вашем случае (в зависимости от особенностей именно Вашего контейнера), на каком-то из шагов может пойти что-то не так. Например, у меня (на другом контейнере) контейнер перестал стартовать, возможно из-за того, что совместный доступ к папке config и системой контейнера и корневой системой для монтирования был невозможен. Возможно, у Вас все и получится, но в противном случае, обходной путь простой.

 

Создайте внутри контейнера свою пустую папку, например /home/redmine/redmine/mount. Для этого после подключения нужно выполнить mkdir mount. Потом выключите контейнер. Настройте монтирование Вашей папки основной системы redmine_config не на реальную папку /home/redmine/redmine/config, а на Вашу только что созданную /home/redmine/redmine/mount. Поднимите контейнер. Войдите в него. Скопируйте нужный Вам файл из /home/redmine/redmine/config в /home/redmine/redmine/mount командой cp. Из основной системы откройте папку redmine_config (к ней сейчас подмонтирована /home/redmine/redmine/mount). Увидите в ней скопированный файл. Отредактируйте его нужным Вам образом. Снова зайдите в контейнер. Скопируйте файл обратно из /home/redmine/redmine/mount в /home/redmine/redmine/config. Перезапустите контейнер.

 

Да. И это все в том случае, если в контейнере у Вас нет редактора (например vi). Если он есть, тогда, конечно же проще редактировать сразу внутри контейнера и подключать ничего не нужно

 

 

так и не получилось у меня ничего - мозг кипит

 

Siroc-co · 24.10.2016

Кто подскажет как юзать докеровский терминал? Так и не разобрался. То работает ctrl+v \ ctrl+c, то не работает. От чего зависит и как включить так и не разобрался.

Что это всё значит:

stAo4wgciOM.jpg

и как этим пользоваться?