catdesign
@catdesign
Веб-разработчик

Объясните пожалуйста как работает Docker/Podman?

Всем привет. Расскажу немного предыстории.

Я веб-разработчик. В основном в качестве рабочей системы использую Linux. Практически в любом дистрибутиве есть свой lamp стек, который довольно просто устанавливается и конфигурируется.

Проекты разные, поэтому мне приходится иметь 3 версии php. 7.4, 8.0, 8.1. Недавно была ситуация когда пришлось ставить древнее ископаемое на php5.5. В моем дистрибутиве этого пакета нет, поэтому ставил devilbox, так как пока с докером желания работать не было.

Немного получив опыта с devilbox я понял, что это лютая какаха. Например, я не смог воспользоваться командой mysql -u -p для входа в mysql из его контейнера. Одновременно несколько версий php там не живут, нужно изменить конфиг devilbox и запустить docker compose.

После всех танцев с бубнами у меня появилось пара тройка вопросов, гугление не дало точного ответа. Надеюсь тут мне промоют мозги.

1. Могу ли я не заниматься изоляцией того, что в целом не должно быть изолировано?
Я хочу создать docker контейнер с чистой, серверной ubuntu и установить все через apt с последующей конфигурацией. Например, установить Apache, Mysql, php-fpm7.4, php-fpm8.0, php-fpm8.1, git, composer. Будет ли нормальный доступ к этому стеку через терминал. Будет ли работать внутри systemd.

1.1 Реализуемо ли это в рамках одного контейнера?

1.2 Можно это как то упаковать что бы таскать с собой в разные дистрибутивы и радоваться?

2. Могу ли я пробросить конфиги и файлы проектов в хост систему?

3. Будет ли это действо сильно тормознее работать чем в нативе?

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

То есть как настроить докер под какой-нибудь вордпресс вопрос понятный. Я же хочу создать для себя рабочее окружение для хоста своих локальных проектов, которые требуют разные версии php. Заранее спасибо!
  • Вопрос задан
  • 285 просмотров
Решения вопроса 1
paran0id
@paran0id Куратор тега Linux
Умный, но ленивый
1. Вообще докер не для этого. Для того, что вы описали, лучше использовать виртуальную машину.
1.1 Один процесс - один контейнер. Отдельно пакуете apache, mysql, каждую версию php, и в docker compose всё оборачиваете. Git и systemd в контейнере не нужны. Докер сам как systemd.
1.2 Упаковать можно что угодно, но см. выше
2. Скорее наоборот, файлы, лежащие на хост-системе, пробрасываются в докер
3. Не будет, если ресурсы не ограничивать
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
2ord
@2ord
По-моему, по вводные данные подпадает LXC (LinuX Containers).
Ответ написан
Комментировать
@Drno
Вам требуется LXC контейнер. создавайте сколько хотите и ставьте внутрь че угодно)
друг на друга влиять не будет
на хост систему можно поставить обратный прокси, типа NGINX, harproxy
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы