하나의 도커 컨테이너가 아니라 n 도커 컨테이너에 있습니다.
이론적으로 전체 dev 환경을 하나의 컨테이너 안에 모을 수는 있지만 docker는이 작업을 수행하지 않았습니다.
대신 docker compose를 사용하여 각 서비스를 별도의 컨테이너에 배포하고 전체 인프라를 하나의 단일 파일로 관리해야합니다. 각 서비스에는 자체 로그 파일, 사용자 공간, 네트워킹 등이 있습니다.
예를 들어 보겠습니다. 이것은 초안입니다. docker-compose.yml
version: '2'
services:
myproxy:
build: myproxy
container_name: ppproxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
networks:
default:
aliases:
- www.domain1.it
- www.domain2.it
- www.domain4.it
mydb1:
build: mydb
environment:
DB_USER: sdffdssdf
DB_PASSWORD: fdsfsdsdf
DB_NAME: dbanme1
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost1.net.lan
VIRTUAL_PORT: 5432
mydb2:
build: mydb
environment:
DB_USER: ssdfsdfs
DB_PASSWORD: sffdssd
DB_NAME: dbanme2
DB_ENCODING: UTF-8
VIRTUAL_HOST: myhost2.net.lan
VIRTUAL_PORT: 5432
www:
image: myimages/oldservice:v1.1
container_name: www
command: /bin/bash /root/launch
environment:
VIRTUAL_HOST: www.domain1.it
VIRTUAL_PORT: 80
ports:
- 80
depends_on:
- mydb1
- mydb1
- myws
myws:
build: myjettycontainer
environment:
HTTPS_METHOD: noredirect
VIRTUAL_HOST: www.domain2.it
VIRTUAL_PORT: 8080
ports:
- 8080
depends_on:
- mydb1
- mydb2
- myproxy
- mypostfix
mypostfix:
image: catatnight/postfix
container_name: mailer
environment:
maildomain: domain1.it
smtp_user: mymail:sfsfdfds
ports:
- 25
nginx 프록시 (myproxy), 두 개의 유사한 postgres 데이터베이스 (mydb1 및 2), 오래된 Java 웹 응용 프로그램 서버 (www), 나머지 웹 서비스를 제공하는 Java 부두 컨테이너 및 마지막으로 매우 간단한 SMTP postfix 컨테이너가 있습니다.
모든 것은 일반적으로 :)-로 시작합니다. docker-compose up
개발자 컴퓨터 나 프로덕션에서; 로그 파일은 읽기 쉬운 하나의 파일로 집계되며 랩톱에서 작동하는 경우 거의 모든 기능을 로컬로 복제 할 수 있습니다.