Какова правильная интерпретация сообщения "Creating network "XXX" with the default driver" при запуске Docker-а?
Пытаюсь запустить первое своё приложение на Docker-e, а не учебный пример. Как обычно, этот процесс сопровождается большим количеством проблем и непонятных моментов, не рассматриваемых в учебных видео.
Анализирую вывод сообщений при первом запуске Docker-а.
D:\IntelliJ IDEA\XXXX\ProjectsForFunctionalTesting\FullStackWebApplication-NodeJS>docker-compose up -d
Creating network "fullstackwebapplication-nodejs_default" with the default driver
Первое же сообщение порождает 7 вопросов:
- Какую сеть он создаёт?
- Зачем он её создаёт?
- А есть ли в этом необходимость?
- Какой такой драйвер про умолчанию?
- Зачем в данном контексте нужен драйвер?
- Какие ещё бывают драйвера?
- Если мне об этом (создании сети) так важно знать, то какая от меня требуется реакция на это замечательное сообщение?
Мой docker-compose.yaml:
version: "3"
services:
webpack:
build: ./
volumes:
- ./00-Source:/Application/00-Source
- ./01-DevelopmentBuild:/Application/01-DevelopmentBuild
- ./.eslintignore:/Application/.eslintignore
- ./.eslintrc.yaml:/Application/.eslintrc.yaml
- ./.mocharc.yaml:/Application/.mocharc.yaml
- ./package.json:/Application/package.json
- ./tsconfig.json:/Application/tsconfig.json
ports:
- 5000:5000
Мой Dockerfile:
FROM node:12.4
WORKDIR /Application
RUN npm i
CMD [ "npm", "run", "'Incremental development build'" ]
Ответы (1 шт):
Какую сеть он создаёт? Зачем он её создаёт?
Он создает сеть к которой будут подключены все сервисы, которые находятся в docker-compose.yml.
А есть ли в этом необходимость?
Это упрощает взаимодействие между сервисами (контейнерами), т.к. в дефолтной сети (к которой подключаются контейнеры при создании например через docker run), не работает DNS Discovery, тогда как в остальных сетях созданных пользователем все ок. Это позволяет использоваться названия сервисов для коммуникации, а не IP. Например, если в вашем сервисе стартует сервер, то к нему можно будет получить доступ через: http://webpack/....
Какой такой драйвер про умолчанию? Зачем в данном контексте нужен драйвер?
Драйвер по умолчанию: bridge. Драйверы позволяют создавать разные "типы" сетей, от их различиях можно посмотреть в документации.
Какие ещё бывают драйвера?
Если мне об этом (создании сети) так важно знать, то какая от меня требуется реакция на это замечательное сообщение?
Никакой, это просто информативное сообщение, чтобы вы знали, что была создана сеть.
первое своё приложение на Docker-e, а не учебный пример
Если это приложение, а не учебный пример, то скорее все что указано в volume не нужно монтировать в контейнер, а указываться в Dockerfile через COPY.