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,以避免主机冲突-根据需要进行调整。

关于链接,您可以看到,如果运行:mysql容器docker-compose exec mysql ping -c2 nginxpingnginx容器,即使在这些容器之间未指定任何链接,您也将成功。Docker Compose将为您维护默认网络中的那些链接。