Tôi đang cố gắng tạo hình ảnh Docker mới không còn sử dụng khối lượng từ vùng chứa đang chạy sử dụng hình ảnh. Khối lượng được tạo ra bằng cách sử dụng tập tin docker-compose, không phải Dockerfile. Vấn đề là, khi tôi khởi chạy một vùng chứa mới thông qua tệp docker-compose.yml mới, nó vẫn có các ổ đĩa được ánh xạ. Tôi vẫn cần phải giữ những tập này và các thùng chứa/hình ảnh gốc sử dụng chúng. Ngoài ra, nếu có thể, tôi muốn tiếp tục sử dụng cùng một hình ảnh docker, chỉ cần thêm phiên bản mới hoặc mới nhất. Dưới đây là các bước tôi đã sử dụng:Docker soạn tái sử dụng khối lượng
Phiên bản mới của một hình ảnh hiện:
docker commit <image id> existingImage:new-version
Tạo một hình ảnh mới từ container đang chạy hiện tại:
docker commit <Image ID> newimage
Tạo mới Docker-compose.yml không có khối lượng xác định và chạy docker-compose với tên dự án khác
docker-compose -p <new project name>
Chạy mà không có docker-compose, chỉ cần sử dụng docker run:
docker run -d -p 8093:80 <img>:<version>
Bất cứ lúc nào tôi chạy bất kỳ sự kết hợp của các tập này vẫn được ánh xạ từ hình ảnh gốc. Vì vậy, câu hỏi của tôi là, làm thế nào để tôi tạo ra một container từ một hình ảnh mà đã từng có khối lượng bản đồ nhưng tôi không còn muốn sử dụng khối lượng?
Edit: điều bổ sung Tôi đã thử:
- Dừng container, loại bỏ container, khởi động lại Docker, chạy Docker soạn lại. Không may mắn.
Chỉnh sửa 2: Đã quyết định bắt đầu lại trên hình ảnh. Sử dụng hình ảnh cơ sở, đã khởi chạy vùng chứa với trình cập nhật docker đã tạo tệp có sử dụng hình ảnh hiện không liên quan. Chạy docker-compose -f up -d -> STILL có cùng khối lượng được ánh xạ mặc dù hình ảnh không (và không bao giờ có) bất kỳ khối lượng nào được ánh xạ và tệp docker-compose.yml hiện tại không ánh xạ các tệp. Nó trông giống như bộ đệm docker-compose những gì khối lượng được ánh xạ cho các dự án.
Sau khi tìm kiếm cho các tùy chọn bộ nhớ đệm trong Docker-soạn, tôi đã xem qua bài viết này: How to get docker-compose to always re-create containers from fresh images? mà dường như để giải quyết các vấn đề về hình ảnh bộ nhớ đệm nhưng không đựng bộ nhớ đệm khối lượng
Bạn không nên sử dụng 'docker commit' để tạo hình ảnh. Sử dụng một 'Dockerfile' và' docker build'. – BMitch
Tại sao không? Điều đó thực sự không trả lời câu hỏi của tôi và có thể là một phần của một cuộc trò chuyện đầy đủ khác. –
Bởi vì nó không thể duy trì hoặc dễ dàng tái sản xuất. Nếu hình ảnh của bạn đã từng bị xóa hoặc bạn phạm sai lầm, bạn không thể quay lại. Đó là một mùi mã của cố gắng để duy trì container theo cách bạn sẽ cài đặt một máy chủ. Nó không phải là một câu trả lời cho câu hỏi của bạn, đó là lý do tại sao nó là một bình luận ở đây. – BMitch