docker-compose
도커 - 기본 네트워크로 다중 컨테이너 예제 작성
수색…
비고
기본적으로 Compose는 앱의 단일 네트워크를 설정합니다. 서비스의 각 컨테이너는 기본 네트워크에 연결되며 해당 네트워크의 다른 컨테이너에서 연결할 수 있으며 컨테이너 이름과 동일한 호스트 이름에서 검색 할 수 있습니다.
링크를 사용하면 다른 서비스에서 서비스에 연결할 수있는 추가 별칭을 정의 할 수 있습니다. 서비스가 통신 할 수 있도록하는 것은 필수적이지 않습니다. 기본적으로 모든 서비스는 해당 서비스 이름으로 다른 서비스에 연결할 수 있습니다.
기본 네트워킹을 사용하여 기본 LAMP 환경을 만드는 방법
docker-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 컨테이너에 MySQL의 컨테이너에서 핑을, 당신은 이러한 컨테이너 사이에 지정되지 링크가 없더라도 성공합니다. Docker Compose는 기본 네트워크에있는 링크를 유지 관리합니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow