Обычно вы должны запускать только один процесс в контейнере. Однако вы можете запускать любое количество контейнеров из одного образа, и легко установить команду, которую контейнер будет запускать при запуске.
Установите CMD
изображения на то, что вы считаете наиболее распространенным. путь будет:
CMD ["node", "b/c/d.js"]
Если вы используете Docker Compose для этого, вы можете указать build: .
для обоих контейнеров, но во втором контейнере укажите альтернативный command:
.
version: '3'
services:
node-d:
build: .
node-e:
build: .
command: node b/c/e.js
Используя голый docker run
, вы можете указать альтернативную команду после имени образа
docker build -t me/node-app .
docker run -d --name node-d me/node-app
docker run -d --name node-e me/node-app \
node b/c/e.js
Это позволяет вам делать такие вещи, как независимая установка политик перезапуска для каждого контейнера; если вы запустите это в кластерной среде, такой как Docker Swarm или Kubernetes, вы также можете независимо масштабировать два контейнера / модуля / процесса.