2017-06-11 38 views
5

Tôi đang cố gắng để tìm hiểu những ins and outs của Docker, và tôi đang bối rối bởi các khách hàng tiềm năng của tiết kiệm một hình ảnh.Làm cách nào để lưu trạng thái vùng chứa Docker?

Tôi chạy hình ảnh Ubuntu cơ bản, cài đặt Anaconda Python và một số thứ khác ... vậy thì cách tốt nhất để lưu tiến trình của tôi là gì? Lưu, cam kết, xuất?

Không có cách nào trong số này hoạt động giống như Hộp ảo, hiển thị tệp trạng thái lưu rõ ràng cho máy ảo của bạn.

Trả lời

5

Cách thông thường ít nhất là thông qua docker commit: điều này sẽ làm đóng trạng thái vùng chứa của bạn thành hình ảnh mới.

Lưu ý: Là commented bởi anchovylegend, đây không phải là phương pháp hay nhất và sử dụng Dockerfile cho phép bạn tạo mẫu chính xác nội dung hình ảnh và đảm bảo bạn có thể xây dựng lại/tái tạo trạng thái ban đầu.

Sau đó, bạn có thể liệt kê hình ảnh đó cục bộ bằng docker images và chạy lại.

Ví dụ:

$ docker ps 

CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 
c3f279d17e0a  ubuntu:12.04  /bin/bash   7 days ago   Up 25 hours       desperate_dubinsky 
197387f1b436  ubuntu:12.04  /bin/bash   7 days ago   Up 25 hours       focused_hamilton 

$ docker commit c3f279d17e0a svendowideit/testimage:version3 

f5283438590d 

$ docker images 

REPOSITORY      TAG     ID     CREATED    SIZE 
svendowideit/testimage   version3   f5283438590d  16 seconds ago  335.7 MB 

Sau đó, if you have deployed a registry server, bạn có thể đẩy hình ảnh của bạn để biết máy chủ.

+0

Trong khi điều này sẽ làm việc, phương pháp này được coi là thực hành kém của cộng đồng Docker. Cách tốt nhất để đi là sử dụng Dockerfile. – AnchovyLegend

+1

@AnchovyLegend Tôi đồng ý và đã chỉnh sửa câu trả lời để đưa vào nhận xét của bạn và làm rõ điều đó. – VonC

+0

Dockerfile tái tạo cài đặt chương trình, nhưng nếu bạn đang tải dữ liệu trong cơ sở dữ liệu chẳng hạn, dockerfile sẽ không lưu trạng thái đó theo bất kỳ cách nào đúng không? – chrismarx

0

Sử dụng tệp docker cho loại tình huống này.

dụ trường hợp cho hình ảnh Ubuntu với MongoDB:

FROM ubuntu 
MAINTAINER Author name 

RUN apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 
RUN echo "deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen" | tee -a /etc/apt/sources.list.d/10gen.list 
RUN apt-get update 
RUN apt-get -y install apt-utils 
RUN apt-get -y install mongodb-10gen 

#RUN echo "" >> /etc/mongodb.conf 

CMD ["/usr/bin/mongod", "--config", "/etc/mongodb.conf"] 

Xem thêm thông lệ tốt nhất cho các văn bản nộp Docker https://docs.docker.com/engine/userguide/eng-image/dockerfile_best-practices/

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