Docker Compose Ports: Simplify Container Networking
Docker Compose ports - это механизм, который позволяет определить, какие порты контейнеров могут быть доступны для внешнего мира через хост-систему. Это позволяет легко настраивать соединение между контейнерами и внешним миром.
Определить порты для сервиса можно с помощью ключа ports в файле docker-compose.yml. Например:
yml
version: '3'
services:
web:
build: .
ports:
- "4000:4000"
Это означает, что порт 4000 в контейнере будет проксироваться на порт 4000 на хост-системе. Таким образом, при обращении к порту 4000 на хост-системе, мы зайдем в наш контейнер и сможем запустить наш веб-сайт или приложение.
Если нужно определить несколько портов, то можно сделать это следующим образом:
yml
version: '3'
services:
web:
build: .
ports:
- "4000:4000"
- "4001:4001"
В этом случае, мы будем проксировать два порта на хост-систему.
Также можно определить порты для контейнеров без использования прокси:
yml
version: '3'
services:
db:
image: mysql
ports:
- "3306"
В этом случае, приложения на других контейнерах смогут подключаться к порту 3306 в нашем контейнере напрямую.
Также, можно использовать ключ EXPOSE в Dockerfile, чтобы определить порты, которые должны быть доступны внутри контейнера.
Например:
Dockerfile
FROM node:14
EXPOSE 4000
CMD node index.js
В этом примере, мы объявили, что порт 4000 должен быть доступен внутри контейнера.
Таким образом, Docker Compose ports позволяет легко управлять тем, как порты должны быть доступны для внешнего мира и для других контейнеров. Это значительно упрощает работу с контейнерами и позволяет быстро создавать и масштабировать приложения.