2016-02-28 33 views
14

Tôi cần phải đường ống (tiêm) một tệp hoặc một số dữ liệu vào docker như là một phần của lệnh chạy và được ghi vào tệp trong vùng chứa như là một phần của quá trình khởi động. Có cách thực hành tốt nhất để làm điều này?Đường ống một tệp vào docker chạy

Tôi đã thử điều này.

cat data.txt | docker run -a stdin -a stdout -i -t ubuntu /bin/bash -c 'cat >/data.txt' 

Nhưng dường như dường như không hoạt động.

+0

Tệp này phải được tiêm vào thời gian chạy không? Bạn có thể xây dựng nó vào hình ảnh không? Ngoài ra, bạn có thể chuẩn bị tệp trước và sau đó gắn kết tệp/thư mục từ máy chủ lưu trữ vào vùng chứa không? –

+0

Có - để thêm một chút màu sắc, tệp thực sự là một khóa mật mã được lấy từ một API và tôi đã hy vọng được đưa vào vùng chứa để nó chỉ có sẵn cho hệ thống tệp vùng chứa. – user1513388

+0

cat setup.json | docker run -a stdin -a stdout -i ubuntu/bin/bash -c 'cat' Làm việc cho tôi. Thả -t. – jamie

Trả lời

-3

Giải pháp tốt hơn là đặt (gắn kết) thư mục lưu trữ của bạn có thể truy cập vào vùng chứa docker. Ví dụ. như thế này

docker run -v /Users/<path>:/<container path> ... 

Đây là /Users/<path> là một thư mục trên máy chủ của bạn và <container path> gắn con đường bên trong container.

Đồng thời xem Manage data in containers trang thủ công.

CẬP NHẬT ví dụ Accessing External Files from Docker Containers khác.

+0

Có thể gắn hệ thống tệp chỉ khả dụng cho một vùng chứa cụ thể không? – user1513388

+0

@ user1513388. trong trường hợp của bạn, nó có thể trông giống như 'docker run -v data.txt: /data.txt -t ubuntu/bin/bash' trong cuộc gọi đầu tiên và' docker run -v data2.txt: /data2.txt -t ubuntu/bin/bash' trong lần gọi thứ hai cho cùng một hình ảnh 'ubuntu' –

+0

Cảm ơn bạn đã cập nhật. Có thực sự có thể truyền dữ liệu qua STDIN và có ghi vào một tệp trong vùng chứa không? – user1513388

25
cat setup.json | docker run -i ubuntu /bin/bash -c 'cat' 

Điều này phù hợp với tôi. Loại bỏ các -t. Không cần -a của một trong hai.

+3

Vì điểm nhập mặc định, 'cat setup.json | docker run -i ubuntu cat' sẽ hoạt động trong nhiều trường hợp – Zero

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