sách gpt4 ai đã đi

Khám phá hệ thống tập tin của một container Docker

In lại Tác giả: trợ lý lỗi Thời gian cập nhật: 2023-10-28 01:28:32 30 4
mua khóa gpt4 Nike

Tôi nhận thấy rằng khi sử dụng docker, tôi cần phải hiểu những gì đang diễn ra bên trong container hoặc có những tập tin nào tồn tại bên trong container. Một ví dụ là tải xuống một hình ảnh từ chỉ mục docker - bạn không biết hình ảnh đó chứa gì, do đó bạn không thể khởi động ứng dụng của mình.

Lý tưởng nhất là có thể truy cập chúng thông qua ssh hoặc phương thức tương đương. Có công cụ nào có thể thực hiện được điều này không, hay là khái niệm docker của tôi sai khi cho rằng tôi có thể thực hiện được điều này.

1 Câu trả lời

Sau đây là một số cách tiếp cận khác nhau...

A) Sử dụng docker exec (Đơn giản nhất)

Docker 1.3 trở lên được hỗ trợ thực hiện lệnh, có hành vi tương tự như người nhập. Lệnh này có thể được sử dụng để chạy một tiến trình mới trong một container đang chạy (container đó phải đang chạy một tiến trình PID 1). Bạn có thể chạy /bin/bash Để khám phá trạng thái của container:

docker exec -t -i mycontainer /bin/bash

Nhìn thấy Tài liệu dòng lệnh Docker

B) Sử dụng ảnh chụp nhanh

Bạn có thể đánh giá hệ thống tập tin chứa theo cách này:

# tìm ID của container đang chạy của bạn:
docker ps

# tạo ảnh (ảnh chụp nhanh) từ hệ thống tập tin chứa
docker cam kết 12345678904b5 mysnapshot

# khám phá hệ thống tập tin này bằng cách sử dụng bash (ví dụ)
docker chạy -t -i mysnapshot /bin/bash

Bằng cách này, bạn có thể đánh giá hệ thống tập tin của một container đang chạy tại một thời điểm chính xác. Container vẫn đang chạy và không chứa bất kỳ thay đổi nào trong tương lai.

Bạn có thể xóa ảnh chụp nhanh sau (hệ thống tập tin của vùng chứa đang chạy không bị ảnh hưởng!):

docker rmi mysnapshot

C) Sử dụng ssh

Nếu bạn cần quyền truy cập liên tục, bạn có thể cài đặt sshd vào vùng chứa của mình và chạy daemon sshd:

 docker chạy -d -p 22 mysnapshot /usr/sbin/sshd -D

# bạn cần tìm ra cổng nào để kết nối:
docker ps

Bằng cách này, bạn có thể chạy ứng dụng của mình bằng ssh (kết nối và thực hiện những gì bạn muốn).

D) Sử dụng nsenter

sử dụngngười nhập,Nhìn thấyTại sao bạn không cần chạy SSHd trong vùng chứa Docker của mình

Phiên bản ngắn gọn là: với nsenter, bạn có thể đưa shell vào một container hiện có, ngay cả khi container đó không chạy SSH hoặc bất kỳ loại daemon chuyên dụng nào

Liên quan đến Linux - Khám phá hệ thống tệp của vùng chứa Docker, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/20813486/

30 4 0
Trợ lý lỗi
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com