2016-02-26 3 views
0

Предположим, у меня есть сервер и сервер базы данных, установленные на одном общем изображении Docker, возможно ли их одновременное выполнение, как если бы они выполнялись внутри одной и той же виртуальной машины?Несколько приложений, работающих одновременно на одном изображении Docker

Выполняется ли он docker run <args> в два раза лучше всего подходит для этого случая использования?

+3

Возможный дубликат [Можно ли запускать несколько программ в контейнере Docker?] (Http://stackoverflow.com/questions/19948149/can-i-run-multiple-programs-in-a-docker-container) – user2566987

ответ

3

Вы не должны использовать одно изображение для своего веб-сервера и базы данных. Вы должны использовать одно изображение для веб-сервера, а другое - для базы данных.

Чтобы запустить это, вы запустите сервер базы данных, а затем запустите свой веб-сервер и привяжите его к серверу базы данных.

В Интернете есть много примеров. Я просто оставлю это здесь один: https://github.com/saada/docker-compose-php-mysql

0

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

Can I run multiple programs in a Docker container?

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

Таким образом, вы бы иметь свой изолированный небольшой HSQL дб работает в режиме сервера, а затем Ваше дико или springboot приложения и, наконец, ваш тест системы по MVN ..

Если у вас есть все три в один контейнер ... Тогда он это просто вопрос выбора, в котором узел Jenkins запускает все ваше в одном контейнере. Поскольку он упаковывает все в пределах независимо от любого другого контейнера, а размер изображения не является чудовищным ... Вы действительно проворны. В качестве примера.

Итак, вы должны увидеть, что лучше для вас.

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