Alexander
Конечно
Alexander
Но
Alexander
На практике какие кейсы применения?
Ильдар
¯\_(ツ)_/¯
Alexander
Вот и я также
Alexander
Например во многих контейнерах (Confluence, Jenkins, etc.) используется инструкция. Но вот понять зачем она там нужна не могу. Без нее тоже всё отлично работает
George
George
Это аннотация. Она создаёт безымянный вольюм
George
Смысл
1. Сказать юзеру, что по идее там переменные данные (БД и прочее)
George
2. Оптимизировать ввод-вывод, т.к. писать файлы в эфемерную ФС контейнера херовая идея
Alexander
Alexander
Хм
George
Что хм ?
Alexander
Это я предполагал, но надеялся, что ещё что-то есть
Alexander
Помимо этих двух пунктов
Alexander
Спасибо за ответ!
George
Нет, больше ничего нет
Alexander
На практике какой-то профит при использовании VOLUME есть?
George
George
Смысл
1. Сказать юзеру, что по идее там переменные данные (БД и прочее)
George
2. Оптимизировать ввод-вывод, т.к. писать файлы в эфемерную ФС контейнера херовая идея
Alexander
Нууу
Alexander
На словах понял
Anonymous
у меня есть контейнер mysql:
build: ./mysqlconf/mysql5.7
container_name: mysql
volumes:
- ../mysql/mysql5.7:/var/lib/mysql/
environment:
MYSQL_ROOT_PASSWORD: root
working_dir: /var/lib/mysql
Anonymous
могу ли я как-то достучатся до mysql через консоль ??
Anonymous
если да, то что надо для этого сделать
Alexander
docker exec -it mysql bash
Alexander
Или docker-compose exec mysql bash
Alexander
Anonymous
так работает, все верно. Но так мы заходим в контейнер. А мы можем попробовать достучатся до mysql без входа в контейнер или напимер до npm(node)
tfhx8
а по умолчанию разве докер хранит логи контейнеров? Делаю docker-compose logs -f -t И он выводит все логи которые были ранее. Он их внутри контейнера хранит? И они создаются и удаляются по ротации?
Alexander
Конечно
Alexander
Alexander
Или же просто через IP-адрес сети, в которой он находится
Alexander
tfhx8
Alexander
Сами же логи как обычно в /var/lib/docker хранятся
Alexander
tfhx8
Alexander
Ильдар
Ильдар
https://docs.docker.com/get-started/part2/
Anonymous
Вообще доступ к mysql у меня есть. Но вот представим, что у меня есть контейнер с нодой. И могу ли я запустить (npm run ...) из носили не переходя к контейнер с нодай?
George
George
цель какая?
Anonymous
Запустить npm из консоли не переходя в сам контейнер
Alexey
docker exec
Ильдар
Anonymous
да (docker exec -ti node bash)
Ильдар
Anonymous
вот тут немного подробнее
Anonymous
как это понять
George
берешь и понимаешь
George
s/bash/npm - это стандартная команда для замены
George
vim, sed etc.
Ильдар
освоить какие-нибудь материалы по докеру, например https://www.katacoda.com/courses/docker
George
docker exec - тоже понятная штука
Anonymous
Никто не говорит, что docker exec не понятная штука. Просто надоело каждый раз захидить в контейнер
Ильдар
не обязательно заходить в контейнер, глянь доку
https://docs.docker.com/engine/reference/commandline/exec/
Anonymous
или что бы запустить composer install для нужного проекта(иногда их бывает много), нужно переходить в контейнер (docker exec -ti php-fpm bash), там искать нужный проект и только тогда запускать composer
Ильдар
Что мешает дописать эти команды в Dockerfile ?
Petr
docker exec -it CONTAINER_NAME sh -c "cd PROJECT_FOLDER/ && composer install"
Anonymous
хай, при запуске mtproto в докере поверх tls отдается варнинг WARNING: Published ports are discarded when using host network mode
Anonymous
чем лечится?
Alexey
ничем, если тип host, то не надо порты публиковать
Alexey
контейнер работает напрямую
Anonymous
docker run -d -p8443:443 --name=MTPROTO
Anonymous
так получается?
Alexey
-p не нужно
Anonymous
аа
Alexey
или не нужно сеть указывать
Anonymous
ну хорошо допишу я ее в докер файл, а потом мне надо доставить phpunit. И я опять должен дописать в докерфайл composer require phpunit/phpunit. потом перезвпустить docker-compose up -d --build
Ильдар
Ильдар
Anonymous
ага, именно так все это и работает)
Ильдар
💯
Anonymous
Anonymous
убрал host и перетащил на другой порт