Sök…


Anmärkningar

Som standard skapar Compose ett enda nätverk för din app. Varje behållare för en tjänst går med i standardnätverket och kan nås både av andra behållare i det nätverket och kan upptäckas av dem på ett värdnamn som är identiskt med behållarnamnet.

Länkar låter dig definiera extra alias med vilka en tjänst kan nås från en annan tjänst. De krävs inte för att aktivera tjänster att kommunicera - som standard kan alla tjänster nå någon annan tjänst på den tjänstens namn.

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

Hur man skapar en grundläggande LAMP-miljö med standardnätverk

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

Observera att nginx-konfigurationen är förenklad men ovan bör fungera för testning - i princip allt det gör är att lägga till php-appen. Kartor till port 81 för att undvika konflikter med värden - justera efter behov.

När det gäller länk kan du se att om du kör: docker-compose exec mysql ping -c2 nginx till ping från mysql-behållaren till nginx-behållaren, lyckas du även om det inte finns några länkar som anges mellan dessa containrar . Docker Compose kommer att behålla dessa länkar i standardnätverket för dig.



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow