Zoeken…


Opmerkingen

Standaard stelt Compose een enkel netwerk in voor uw app. Elke container voor een service sluit zich aan bij het standaardnetwerk en is zowel bereikbaar voor andere containers op dat netwerk als voor hen te vinden met een hostnaam die identiek is aan de containernaam.

Met koppelingen kunt u extra aliassen definiëren waarmee een service bereikbaar is vanaf een andere service. Ze zijn niet vereist om services te laten communiceren - standaard kan elke service een andere service bereiken op naam van die service.

https://docs.docker.com/compose/networking/

Een standaard LAMP-omgeving maken met standaardnetwerken

havenarbeider-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;
    }
  }
}

Merk op dat de configuratie van nginx is vereenvoudigd, maar hierboven zou moeten werken voor het testen - in feite volstaat het alleen om de php-app te proxyen. Kaarten naar poort 81 om conflicten op de host te voorkomen - pas aan indien nodig.

Wat betreft het koppelen, kunt u zien dat als u uitvoert: docker-compose exec mysql ping -c2 nginx naar ping van de mysql-container naar de nginx-container, u zult slagen, hoewel er geen koppelingen tussen deze containers zijn opgegeven . Docker Compose bewaart die links in het standaardnetwerk voor u.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow