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,以避免主机冲突-根据需要进行调整。
关于链接,您可以看到,如果运行:从mysql容器docker-compose exec mysql ping -c2 nginxping到nginx容器,即使在这些容器之间未指定任何链接,您也将成功。Docker Compose将为您维护默认网络中的那些链接。