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将为您维护默认网络中的那些链接。