2016-02-16 25 views
7

Tôi có tệp soạn cục bộ. Cách chạy gói vùng chứa trên máy chủ từ xa như docker-compose up -d với DOCKER_HOST=<some ip>?Làm cách nào để chạy docker-compose trên máy chủ từ xa?

+0

Ý của bạn là 'máy chủ từ xa'? – JAM

+0

có, từ xa, sry – Arsen

+0

Câu hỏi của bạn không rõ ràng cho tôi. Bạn có thực sự muốn triển khai vùng chứa trên máy chủ từ xa thông qua 'docker-compose' không? – Auzias

Trả lời

4

Nếu bạn không cần chạy vùng chứa docker trên máy cục bộ của mình, nhưng vẫn còn trên cùng một máy từ xa, bạn có thể thay đổi điều này trong cài đặt đế của bạn.

Trên máy tính cục bộ: Bạn có thể kiểm soát máy chủ từ xa với tham số -H

docker -H tcp://remote:2375 pull ubuntu 

Để sử dụng nó với Docker-soạn, bạn nên thêm tham số này trong/etc/default/Docker

Trên máy từ xa

Bạn nên thay đổi nghe từ địa chỉ bên ngoài và không chỉ ổ cắm unix.

Xem Bind Docker to another host/port or a Unix socket để biết thêm chi tiết.

Nếu bạn cần phải chạy container trên nhiều Hoste từ xa, bạn nên cấu hình Docker Swarm

3

Từ các tài liệu soạn

Compose CLI environment variables

DOCKER_HOST

Thiết lập URL của Docker daemon. Giống như trình khách Docker, mặc định là unix: ///var/run/docker.sock.

để chúng tôi có thể làm

export DOCKER_HOST=tcp://192.168.1.2:2375 
docker-compose up 
2

Cho rằng bạn có thể đăng nhập vào máy tính từ xa, cách tiếp cận khác để chạy docker-compose lệnh trên máy tính đó là sử dụng SSH.

Sao chép tệp docker-compose.yml của bạn qua máy chủ từ xa qua scp, chạy các lệnh docker-compose qua SSH, cuối cùng xóa sạch bằng cách xóa tệp lại. này có thể xem như sau:

scp ./docker-compose.yml [email protected]:/tmp/docker-compose.yml 
ssh [email protected] "docker-compose -f /tmp/docker-compose.yml up" 
ssh [email protected] "rm -f /tmp/docker-compose.yml" 

Bạn thậm chí có thể làm cho nó ngắn hơn và bỏ qua việc gửi và loại bỏ các tập tin docker-compose.yml bằng cách sử dụng tùy chọn -f --docker-compose mà sẽ mong đợi các tập tin docker-compose.yml để được đường ống từ stdin. Chỉ cần ống nội dung của nó đến SSH lệnh:

cat docker-compose.yml | ssh [email protected] "docker-compose -f - up" 

Nếu bạn sử dụng thay thế các biến môi trường trong tập tin docker-compose.yml của bạn, lệnh nêu trên sẽ không thay thế chúng với các giá trị địa phương của bạn trên máy chủ từ xa và các lệnh của bạn có thể thất bại do cho các biến không được đặt.Để khắc phục điều này, các envsubst utility có thể được sử dụng để thay thế các biến với các giá trị địa phương của bạn trong bộ nhớ trước khi đường ống nội dung vào SSH lệnh:

envsubst < docker-compose.yml | ssh [email protected] "docker-compose up" 
Các vấn đề liên quan