Chế độ tách rời trong thế giới docker là gì? Tôi đọc liên kết bài viết này , nhưng nó không giải thích chính xác chế độ tách rời nghĩa là gì.
Chế độ tách rời trong thế giới docker là gì? Tôi đọc liên kết bài viết này , nhưng nó không giải thích chính xác chế độ tách rời nghĩa là gì.
Câu trả lời:
Bạn có thể khởi động bộ chứa docker ở chế độ tách rời với một -d
tùy chọn. Vì vậy, vùng chứa khởi động và chạy trong nền. Điều đó có nghĩa là, bạn khởi động vùng chứa và có thể sử dụng bảng điều khiển sau khi khởi động cho các lệnh khác.
Đối lập với chế độ tách rời là chế độ tiền cảnh. Đó là chế độ mặc định, khi -d
tùy chọn không được sử dụng. Trong chế độ này, bảng điều khiển bạn đang sử dụng để thực thi docker run
sẽ được gắn với đầu vào, đầu ra và lỗi tiêu chuẩn. Điều đó có nghĩa là bảng điều khiển của bạn được gắn vào quy trình của vùng chứa.
Trong chế độ tách rời, bạn có thể theo dõi đầu ra tiêu chuẩn của bộ chứa docker của bạn với docker logs -f <container_ID>
.
Chỉ cần thử cả hai tùy chọn. Tôi luôn sử dụng chế độ tách rời để chạy các vùng chứa của mình. Tôi hy vọng tôi có thể giải thích nó rõ ràng hơn một chút.
docker logs -f [container_ID] > logs.txt
. Nếu nó không hoạt động, hãy thử thêm cờ '-it' khi khởi động vùng chứa docker theo đề xuất của @BMitch bên dưới.
Tùy chọn tách trên dòng lệnh docker chỉ ra rằng máy khách docker ( docker
) sẽ thực hiện một yêu cầu đến máy chủ ( dockerd
), và sau đó máy khách sẽ thoát trong khi yêu cầu đó tiếp tục trên máy chủ. Một phần của sự nhầm lẫn có thể là do docker trông giống như một quy trình duy nhất, trong thực tế, nó là một ứng dụng máy khách / máy chủ trong đó máy khách chỉ là một giao diện người dùng mỏng trên API REST để gửi mọi lệnh đến máy chủ.
Với a docker container run --detach
, điều này có nghĩa là vùng chứa sẽ được tạo, máy chủ sẽ phản hồi bằng id vùng chứa nếu thành công và vùng chứa sẽ tiếp tục chạy trên máy chủ trong khi bạn có thể tự do chạy các lệnh khác. Điều này thường được sử dụng cho một máy chủ (ví dụ: nginx) bạn muốn khởi động ở chế độ nền trong khi bạn tiếp tục chạy các lệnh khác. Lưu ý rằng bạn vẫn có thể định cấu hình vùng chứa với các tùy chọn --interactive
và -tty
(thường được viết tắt -it
) và sau đó chạy a docker container attach
để kết nối với một vùng chứa đã chạy. (Lưu ý, cho đến khi bạn đính kèm vào vùng chứa đang chạy cùng -itd
, bất kỳ nỗ lực nào của vùng chứa để đọc từ stdin sẽ bị treo, thay vì nhìn thấy kết thúc của đầu vào thường kích hoạt thoát ngay lập tức nếu bạn vừa đi qua -d
.)
Nếu bạn chạy mà không có tùy chọn tách, ứng dụng khách sẽ ngay lập tức chạy lệnh gọi API đính kèm sau khi vùng chứa được tạo để bạn có thể xem đầu ra và tùy chọn cung cấp đầu vào cho quá trình đang chạy trên vùng chứa. Điều này hữu ích nếu vùng chứa của bạn đang chạy thứ gì đó tương tác (ví dụ /bin/bash
:).
Một số lệnh khác cho phép tùy chọn tách, bao gồm tùy chọn docker-compose up -d
sẽ bắt đầu toàn bộ dự án và để nó chạy trên máy chủ ở chế độ nền. Cũng có nhiều docker service
lệnh sẽ tách ra sau khi gửi thay đổi tới máy chủ để tạo hoặc cập nhật trạng thái đích của dịch vụ hoặc nếu bạn không tách ra, máy khách sẽ đợi cho đến khi trạng thái hiện tại của dịch vụ khớp với trạng thái đích và bạn có thể thấy tiến độ triển khai. Lưu ý với docker service
các lệnh, bạn có thể phải vượt qua --detach=false
để tiếp tục đính kèm, hành vi đã thay đổi trong năm qua tùy thuộc vào phiên bản của bạn.
--detach-keys
)
--interactive
và --tty
(hay còn gọi là -it
) để điều đó hoạt động.
docker run -d -t ubuntu:14.04
docker run - Tạo một thể hiện từ hình ảnh docker làm vùng chứa docker. (nếu hình ảnh không có sẵn cục bộ, nó sẽ kéo từ trung tâm docker) ubuntu - Tên hình ảnh
14.04 - Thẻ
-d, --detach - Chế độ tách
-t, --tty - Phân bổ TTY giả