Oleg
Ребят, есть один вопрос. Можно ли примонтировать раздел к образу так, чтобы на хост системе появились файлы из образа?
kSandr
Oleg
используй volume Люк !
Это я и так делаю. Я наверное неправильно выразился. У меня есть файлы в образе в определённой папке и я хочу чтобы при монтировании эти же файлы появились на хост системе, но чё-то не получается
kSandr
Oleg
Не могу точно сказать, так как запускаю через ansible, но там всё-таки volume
kSandr
у докера есть 2 механизма , 1 - бинд маунт, когда ты монтируешься к хостовой фс и 2 - это волумы , вот если у тебя волумы определены в докерфайле и при старте ты используешь именно их , то содержимое волума переносится при первом запуске
kSandr
а вообще раз уж юзаешь ансибл, то можно и копирнуть содержимое папки контейнера перед стартом, но волум более православный путь
Oleg
Oleg
Oleg
ну вот это оно ... у докера есть сущность volume вот это про неё история
- name: Run core image for generating migrations
docker_container:
name: "{{ images.core.container }}"
image: "{{ images.core.image }}"
network_mode: host
volumes:
- "{{ MIGRATION_DIR }}:/home/core/database/alembic/versions"
command: "alembic revision --autogenerate -m {{ ansible_date_time.iso8601_basic_short }}"
kSandr
нет ... это бинд моунт
kSandr
если ты сделаешь docker inspect на контейнер, то он отобразится как bind
kSandr
и еще он должен быть определен в докерфайле директивой VOLUME
Hopf
Привет.
Подскажите, где и какие есть гайды как тюнить настройки докера (настройка со стороны демона, не тюнинг приложения внутри докера) под перфоманс.
Интересует работа с дисками, сеть
George
1. хостовая сеть. Бридж тупит
2. выбрать правильный сторедж драйвер. Но это индивидуально. devicemapper, overlay2 - как правило достаточно
Hopf
Hopf
Если оверлей взять?
George
можно. Но будет медленнее
Hopf
А есть ссылки на то, как бридж тупит? Это из-за большого количества правил в iptables? Или другая причина? И как оно живет на 10g?
NM
George
George
George
В том числе и из-за правил айпитейблз
Anonymous
George
да, в кошмарном бреду
George
открой доку на доцкер
Tadeusz
доскер
George
кто-то красивее написал
George
лохцкер
Amateur
как из build args вставить в переменную окружения в dockerfile? что-то типо такого ENV API_URL=${backend_url} где backend url это build args
George
manefesto
Ребята, напомните мне, можно ли пробросить докер порт на локалхост хоста ?
George
manefesto
docker -p 127.0.0.1:3000:3000 ?
Amateur
а есть способ инициализировать переменные окружения до того как выполнится RUN npm run build в Dockerfile?
Amateur
потому что я ввожу переменные окружения при запуске докера, но я их не могу достать dockerfile
manefesto
@kotanskiy покажи пример
George
George
Amateur
API_URL нима в dockerfile
manefesto
При билде указывай
George
George
что ты творишь
George
разберись с тем какое время жизни у ENV и ARG. Это не сложно
Ruslan
Подскажите, есть ли смысл пытаться найти способ увести в фон процессы, чтобы запустить в СМД два процесса, которые держат shell?
Ruslan
Или просто в два контейнера их разнести?
manefesto
use supervisor Luke
George
George
kSandr
Ruslan
зачем
Это не очень интересная практика, как я уже понял. Правильно?)
George
ну, ты хочешь #странного
Ruslan
Ну я хотел просто gunicorn и celery в одном держать... Мысль дилетантская была
manefesto
Aleksey
коллеги у меня на хосте 100500 сетевых интерфейсов. как мне сопоставить конкретный сетевой интерфейс с конкретным контейнером ?
George
George
Ну, вообще можно, но это изврат
Aleksey
не зачем а как
Aleksey
с зачем я разберусь
George
Ты хочешь трафик каждого контейнера считать ?
Aleksey
Нет. Я хочу понять какой интерфейс на хосте у этого контейнера
Aleksey
Не больше ни меньше
Andrey
Aleksey
Баш да
Andrey
Andrey
Цель какая
Aleksey
Aleksey
я может чего в нём не нашёл но прямой путь не работает
Aleksey
не получатеся сказать что veth4642d4f6 это мой контейнер
Andrey
Aleksey
Aleksey
Андрей, я плохо сформулировал что хочу?
Sebor▂▅▇█▓▒░
А инспект сети не показывает?
Aleksey
нет это то что я проверил в первую очередь
Ilya
Привет!
Вопрос архитектурный больше, ну и совета спросить.
Дано: бэк на python (два образа уже подготовил, app и rabbitmq consumer). И фронт на js.
Цель: сделать генератор сайтов, т.е. три контейнера с новым конфигом == новый сайт.
Создавать это должен менеджер, у которого нет технических знаний. Т.е. зашёл на простую админку, ввел некоторые данные и нажал "создать сайт".
И уже под капотом понеслось:
1. Создалась отдельная БД
2. Сгенерировался конфиг с доступами и данными, которые ввел менеджер
3. Создались контейнеры бэка и фронта с конфигами.
4. Прописались на nginx
Я правильно понимаю, что кроме как писать свой велосипед, других решений нет?
У меня пока два варианта:
1. Создать Jenkins(ну или любую другую ci) джобу. Которая будет эти шаги дергать + простой ui для менеджера (придумаю позже на чем проще). Который будет дергать эти джобки.
2. Полностью свой велосипед, на чем-нибудь вроде flask.
Ну и сейчас выбираю между swarm / k8s. Кластер будем свой поднимать.
Посмотрел бегло тут: [тут должна быть ссылка на хабр] все решения больше для администрирования (какое-то точно прикрутим, чтобы наблюдать за этим зоопарком).
Итого:
1. Не изобретаю ли велосипед? И две описанные реализации -- это единственное возможное?
2. В контексте задачи для генерации сайтов, что лучше подойдет: swarm или k8s? Посмотрел, что есть два пакета питоновских: docker и kubernetes. В целом с хорошей докой (На первый взгляд).
Цель в использовании swarm/k8s простая. Если вдруг (почти не реальная ситуация у нас, малые нагрузки), где-то бэк или фронт завалился, просто докинуть реплику в ручном режиме.
В общем, кто что посоветует. Сразу прошу прощения, если формулировки где-то странные, новая тема, неделю только разбираюсь. Пока только все в образы запихнул и кластер swarm сделал, где смог пока с захардкоженными конфигами запуститься.
И вот подумалось, а не изобретаю ли колесо?
Всем заранее спасибо за критику и советы.