docker-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
を実行してmysqlコンテナから nginxコンテナにdocker-compose exec mysql ping -c2 nginx
、これらのコンテナ間にリンクが指定されていなくても成功します。 Docker Composeはデフォルトネットワークのリンクを維持します。
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow