Ответы пользователя по тегу Docker
  • Как рулить docker-compose в проде?

    @ProFfeSsoRr
    Сис.админ по Linux
    Как рулить docker-compose в проде?

    Никак, это решение не для прода, а для запуска на локальных компьютерах. Для прода Kubernetes.

    сделать link на него у других сервисов и потом переключить в конфигах Nginx backend
    если вы хотите делать так, то это уже не "средней важности". Если вы можете себе позволить простой, почему бы просто не стопнуть старый контейнер, и запустить потом уже обновленный?

    Но внезапно надо собрать тот же веб сервер как у меня, но на образе Centos. Там разные названия библиотек, extensions для php, названия пакетов и т.д.

    Так, стоп, вы тут всё в кучу смешали. Вы пишите, что у вас сервер, который запускает контейнеры. А в контейнерах уже внутри у вас там вебсервер. Так вот если у вас контейнеры - вам там какая разница, какие они внутри? Ну в смысле что вы берёте те, что вам нравятся и которые вы понимаете, и пользуетесь этим. Зачем пересобирать контейнер из убунты в центось, когда можно пойти и взять сразу с центосью? А самое главное - зачем это делаеть тому человеку, который не знает названий бибилотек и вот этого всего? Если он не знает - он возьмёт то, что знает, контейнеры в том числе для этого и придуманы - вот знает у вас разработчик убунту, использует её, и контейнеры на базе убунты собирает. А дальше он уходит на продовый сервер, который сис.админы подняли на centos например, потому что считают, что для этих задач она им лучше подходит. Таким образом разные люди используют каждый то, что знают уже, и всё вместе работает и решает поставленные задачи.
    Ответ написан
    2 комментария
  • Как можно организовать проброс тома на работающем docker контейнере?

    @ProFfeSsoRr
    Сис.админ по Linux
    Такие схемы противоречат идее контейнеров, их суть - перезапускаться, чуть что. Поэтому и нет таких возможностей.
    Ответ написан
    Комментировать
  • Как разделить среды для разных пользователей для docker?

    @ProFfeSsoRr
    Сис.админ по Linux
    и чтобы контейнеры на одних и тех же портах у разных пользователей могли быть запущены одновременно

    На одном сетевом интерфейсе один порт может держать только одна программа. Так что ли проксировать оба контейнера, или вешать на разные сетевые интерфейсы, или вешать на разные порты. Опишите задачу, которую вы таким способом решаете - возможно для неё есть другой путь.
    Ответ написан
  • Выбор ОС для разработки под Docker: Windows или Linux?

    @ProFfeSsoRr
    Сис.админ по Linux
    Linux советуют тебе (ну если отбросить всякие нравится/не нравится, а только объективно) потому, что продукт твой будет в итоге крутится на линуксе. Т.е. чтобы ты, как разработчик, был ближе к инфраструктуре. Причем скорее всего тебе, как разработчику, нужно будет понимать, что сделать на линуксовом сервере, чтобы посмотреть свои логи и т.д. и т.п. Т.е. линукс на базовом уровне знать надо, а для этого проще всего его себе поставить и попользоваться.
    Про докер: докер под винду и под линукс разный, если ты пишешь под линукс в итоге - ты в винде запускаешь докер, который запускается в виртуалке с линуксом. Т.е. фактически да - ты из-под винды работаешь в линуксе в каком-то виде.
    Тут еще такой момент - майкрософт в win10 затащили с линукса уйму всего, начиная от того, что они сам линукс притащили, заканчивая тем, что и терминал новый пишут крутой. Т.е. сейчас разница между "сидеть на винде" и "сидеть на линуксе" уменьшается. Тот же visual studio code есть на обоих платформах, многие инструменты - браузерные по сути, соответственно работают везде. Т.е. сейчас переехать с винды на линукс проще, не надо учить новые инструменты типа IDE, но и остаться на винде легче теперь. Так что попробуй освоится с докером в винде, и на виртуалке в линуксе настроить всё аналогичное и посравнивать процесс работы.
    Ответ написан
    Комментировать
  • Перезапуск Nginx без обрыва WebSocket соединений, реально?

    @ProFfeSsoRr
    Сис.админ по Linux
    Сервис Nginx после редактирования конфигов рестартую, поскольку пересобираю образ.

    Получается, что решение проблемы - не пересобирать образ. В Kubernetes это всё крутится видимо? Нельзя просто для новых доменов запускать новый nginx, а старый не трогать, пусть обслуживает старых пользователей?
    Ответ написан
  • Как пробросить папку из контейнера в локальну папку?

    @ProFfeSsoRr
    Сис.админ по Linux
    Можно ли как-то при run пробросить те файлы, что есть в контейнере на локальную машину?

    Делается наоборот - локальная папка монтируется в контейнере туда, куда нужно.
    В контейнере запускается proftpd? У него в конфиге что стоит, что он /home типа слушает? Ну смонтируйте свой /home в /home контейнера, вот и решение задачи (если я правильно её понял конечно).
    Ответ написан
    Комментировать
  • Как быстро освоить Kubernetes?

    @ProFfeSsoRr
    Сис.админ по Linux
    Существует уже достаточное количество литературы
    нет, не существует - проект очень быстро развивается, литература так быстро не выходит.
    По поводу "как познавал" - есть установка кластера через kubeadm, это утилита от, собственно, разработчиков kubernetes, и есть the hard way от Келси Хайтауэра https://github.com/kelseyhightower/kubernetes-the-... Есть популярный ансибл kubespray, сделанный вокруг kubeadm - но я его не юзал, я написал себе ансибл-роль сам, пока разбирался. Т.к. поднять кластер с одним мастером на kubeadm - это не так уж долго и не особо сложно. Также я ставил сразу на containerd, чтобы не боротся с проблемами докера (например он поднимает свою сеть, что только мешает кубу, и т.д.).
    Окей, вот ты поднял кластер с одним мастером и одной рабочей нодой (лучше хотя бы двумя, если ресурсы позволяют). Дальше надо что-то в кластере запустить - если у тебя есть какое-то простое приложение с вебсервером, в идеале уже собранное в контейнер - вот попробуй его запустить. Потом, чтобы его высунуть наружу - поставь в кластер ingress controller, начни с ingress-nginx от комьюнити (есть еще nginx-ingress от разрабов nginx - он менее функционален, его берут в основном те, кто nginx plus купил). Проще всего ингрес-контроллер запустить с hostNetwork: true и "прибить" его к одному из воркеров куба - сможешь тогда туда перенаправлять трафик и так получить доступ к своему приложению правильным путём.
    Ну а дальше уже зависит от конкретных условий, от нагрузки, от приложений. Если у тебя не планируется запуск приложений с состоянием - можешь для начала держать 1 мастер, не заморачиваясь с мульти-мастером (особенно если запускаешь на виртуалках, чтоб просто целиком мастер бекапить), добавить мониторинг с помощью prometheus-operator, подключить своё приложение к мониторингу, поставить к примеру fluent-bit для сбора логов куда-то... Ну и т.д. :)
    Ответ написан
    Комментировать
  • Как настроить DNS kubernetes?

    @ProFfeSsoRr
    Сис.админ по Linux
    Так у пода опция про DNS какое значение имеет? ClusterFirst? У пода приложения, не CoreDNS.
    Ответ написан
    Комментировать
  • Какую серверную ОС выбрать для запуска docker контейнеров?

    @ProFfeSsoRr
    Сис.админ по Linux
    Ну тут 2 варианта - либо свою любимую и привычную, либо заточенную чисто под контейнеры. Вторые обычно не просто под контейнеры заточены, а под kubernetes. Соответственно если хотите k8s - CoreOS первый кандидат.
    Ответ написан
    Комментировать