如何使用預設網路建立基本 LAMP 環境

泊塢窗,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 容器 ping nginx 容器,即使這些容器之間沒有指定連結,你也會成功。Docker Compose 將為你保留預設網路中的連結。