2017-05-03 16 views
8

Tôi đã cố gắng thiết lập vùng chứa nginx-proxy để truy cập các vùng chứa khác của mình qua các tên miền phụ trên cổng 80 thay vì các cổng đặc biệt. Như bạn có thể đoán, tôi không thể làm cho nó hoạt động.Làm cách nào để tham gia mạng cầu nối mặc định bằng docker-compose v2?

Tôi là người mới đến docker chính nó và thấy rằng nó thoải mái hơn cho tôi để viết docker-compose.yml tập tin vì vậy tôi không phải liên tục viết dài docker run ... lệnh. Tôi nghĩ rằng không có sự khác biệt trong cách bạn bắt đầu các thùng chứa, hoặc với docker hoặc docker-compose. Tuy nhiên, một sự khác biệt mà tôi nhận thấy là bắt đầu vùng chứa với docker không tạo bất kỳ mạng mới nào, nhưng với docker-compose, sau đó sẽ có mạng xxx_default.

Tôi đọc rằng các vùng chứa trên các mạng khác nhau không thể truy cập lẫn nhau và có thể đó là lý do tại sao proxy nginx không chuyển tiếp yêu cầu tới các vùng chứa khác. Tuy nhiên, tôi không thể tìm cách cấu hình tệp docker-compose.yml của mình để không tạo bất kỳ mạng mới nào, nhưng thay vào đó hãy tham gia mạng cầu nối mặc định như docker run.

tôi đã cố gắng điều sau đây, nhưng nó dẫn đến một lỗi nói rằng tôi không thể tham gia mạng lưới hệ thống như thế này:

networks: 
    default: 
    external: 
     name: bridge 

Tôi cũng đã cố gắng network_mode: bridge, nhưng điều đó dường như không thực hiện bất kỳ sự khác biệt.

Làm cách nào để ghi tệp docker-compose.yml để không tạo mạng mới hoặc hoàn toàn không thể?

Câu hỏi thưởng: Có bất kỳ khác biệt nào khác giữa dockerdocker-compose mà tôi nên biết không?

+0

[định dạng v1] (https://docs.docker.com/compose/compose-file/compose-file-v1/) soạn file này sẽ không tạo ra một mạng mới, nhưng yêu cầu 'liên kết' được thiết lập để nói chuyện với các vùng chứa khác trên cầu mặc định. – Matt

+0

v1 sẽ không được dùng nữa, nên tránh sử dụng nó. – Rawkode

+0

Có, tôi đang sử dụng định dạng phiên bản 2. Cảm ơn gợi ý. – noone

Trả lời

16

Thêm network_mode: bridge vào mỗi dịch vụ trong docker-compose.yml của bạn sẽ ngừng soạn từ việc tạo mạng.

Nếu bất kỳ dịch vụ nào không được định cấu hình với cây cầu này (hoặc máy chủ), mạng sẽ được tạo.

Tested và xác nhận với:

version: "2.1" 

services: 
    app: 
    image: ubuntu:latest 
    network_mode: bridge 
+0

Ồ, đó có thể là vấn đề, tôi nghĩ rằng tôi đã thêm nó vào chỉ một trong các dịch vụ. Tôi sẽ thử nó sau và kiểm tra xem nó có giải quyết được vấn đề không. – noone

+0

Tôi quên báo cáo lại ở đây ... nó thực sự là vấn đề. :) – noone

+0

Điều này phá vỡ khám phá. Vì vậy, nếu bạn có> 1 container cần nói chuyện với nhau thì nó không hoạt động. –

Các vấn đề liên quan