Docker compose создан для работы с несколькими приложениями, а с файлом Dockerfile он очень мощный. Проще говоря, вы можете разделить файл docker -compose на вещи, называемые «службами», и они будут действовать как разные, отдельные приложения / микросервисы, так что, скажем, мне нужны приложение nodejs и база данных в одном docker - compose file и Dockerfile:
Dockerfile:
FROM node:7.7.2-alpine
WORKDIR /usr/app
COPY package.json .
RUN npm install --quiet
COPY . .
Docker -compose:
version: '3.1'
services:
mongo:
image: mongo
name: database
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: example
web:
build: .
command: npm run dev
volumes:
- .:/usr/app/
- /usr/app/node_modules
ports:
- "3000:3000"
depends_on:
- mongo
Если вы запустили это в каталоге, с которым хотите работать, он всегда будет оставаться в этом каталоге. Вы можете присвоить каждой службе собственное имя. В этом примере это mon go и web. После запуска локально вы можете ссылаться на свои службы и подключаться к ним, просто используя их соответствующие имена.
Я рекомендую эти два видео YouTube. Быстро и просто. Здесь и здесь