docker-compose
Docker-compose multi-container example с сетью по умолчанию
Поиск…
замечания
По умолчанию Compose устанавливает единую сеть для вашего приложения. Каждый контейнер для службы присоединяется к сети по умолчанию и доступен для других контейнеров в этой сети и может быть обнаружен ими по имени узла, идентичному имени контейнера.
Ссылки позволяют определить дополнительные псевдонимы, с помощью которых услуга доступна из другой службы. Они не обязаны включать службы для связи - по умолчанию любая служба может достигать любой другой службы под этим именем службы.
Как создать базовую среду LAMP с сетью по умолчанию
докер-compose.yml
version: '2'
services:
php:
image: phpmyadmin/phpmyadmin
links:
- mysql:db
depends_on:
- mysql
mysql:
image: k0st/alpine-mariadb
volumes:
- ./data/mysql:/var/lib/mysql
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=myuser
- MYSQL_PASSWORD=mypass
nginx:
image: nginx:stable-alpine
ports:
- "81:80"
volumes:
- ./nginx/log:/var/log/nginx
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
depends_on:
- php
Nginx / nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
sendfile off;
server {
listen 80;
location / {
proxy_pass http://php;
proxy_set_header Host $host;
proxy_redirect off;
}
}
}
Обратите внимание, что конфигурация nginx упрощена, но выше должна работать для тестирования - в основном все, что она делает, это проксирование приложения php. Карты в порт 81 во избежание конфликтов на хосте - при необходимости отрегулируйте.
Что касается связывания, вы можете увидеть , что при запуске: docker-compose exec mysql ping -c2 nginx
для пинга из тузда контейнера в контейнер Nginx, вы добьетесь успеха , даже если нет ссылки , указанной между этими контейнерами. Docker Compose будет поддерживать эти ссылки в сети по умолчанию для вас.