không phải trong một container docker nhưng có trong n container docker.
Mặc dù về mặt lý thuyết, bạn có thể lắp ráp toàn bộ môi trường dev của mình trong một container, docker không có nghĩa là làm điều này.
Thay vào đó, bạn nên triển khai từng dịch vụ vào các thùng chứa riêng biệt, sử dụng soạn thảo docker , quản lý toàn bộ cơ sở hạ tầng của bạn trong một tệp duy nhất, trong đó mỗi dịch vụ sẽ có logfile, không gian người dùng, mạng, v.v.
Hãy để tôi cho bạn một ví dụ, đây là bản nháp của tôi 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
Có một nginx proxy (myproxy), hai cơ sở dữ liệu postgres tương tự (mydb1 và 2), một máy chủ ứng dụng web java cũ (www), một bộ chứa jetty java cung cấp một dịch vụ web còn lại và cuối cùng là một thùng chứa hậu tố SMTP rất đơn giản.
Mọi thứ bắt đầu - thường là :) - với docker-compose up
, trên máy dev của tôi hoặc trong sản xuất; các tệp nhật ký được tổng hợp thành một tệp dễ đọc và có thể sao chép cục bộ gần như mọi chức năng với đảm bảo rằng, nếu nó hoạt động trên máy tính xách tay của tôi thì nó sẽ hoạt động.