Vì docker không phải là một hệ điều hành, nên không có JDK cho docker.
Theo tôi hiểu câu hỏi của bạn, đó là một JDK đầy đủ quá lớn so với mong muốn của bạn, trong trường hợp này bạn có thể thử chuyển sang chỉ JRE và chỉ bao gồm các thư viện cần thiết.
JDK là từ viết tắt của Java Development Kit, JRE là từ viết tắt của Java Runtime Engine. Bởi "sự lười biếng" do sự phức tạp để liệt kê mọi phụ thuộc cần thiết, không ai chỉ rút xuống các thư viện cần thiết, nhưng đó là cách để đi nếu bạn muốn giảm kích thước cài đặt xuống mức tối thiểu nghiêm ngặt.
Một cách dễ sử dụng hơn có thể loại bỏ một số thứ được cài đặt đang chiếm nhiều dung lượng:
/usr/lib/jvm/jdk1.8.0_101$ du -hs *
776K bin
4.0K COPYRIGHT
5.7M db
208K include
4.9M javafx-src.zip
187M jre
133M lib
4.0K LICENSE
2.0M man
4.0K README.html
4.0K release
21M src.zip
108K THIRDPARTYLICENSEREADME-JAVAFX.txt
176K THIRDPARTYLICENSEREADME.txt
Có hai * src.zip có thể bị xóa, chúng sẽ không được sử dụng và như bạn có thể thấy thư mục lib có kích thước bằng một nửa và trong đó bạn có một loạt những thứ bạn không thực sự cần:
/usr/lib/jvm/jdk1.8.0_101$ du -hs lib/*
120K lib/amd64
1.2M lib/ant-javafx.jar
18M lib/ct.sym
160K lib/dt.jar
20K lib/ir.idl
36K lib/javafx-mx.jar
400K lib/jconsole.jar
12K lib/jexec
60M lib/missioncontrol
4.0K lib/orb.idl
8.0K lib/packager.jar
2.4M lib/sa-jdi.jar
18M lib/tools.jar
34M lib/visualvm
Bạn có thể không gặp sự cố khi xóa missoncontrol trên máy chủ, tôi giả sử bạn cũng có thể thoát khỏi visualvm, bạn sẽ phải kiểm tra xem bạn có cần gì trong thư mục lib này không, nhưng tôi không thể biết mà không biết ứng dụng của bạn ..
Một điều bạn nên làm trong dockerfile của mình trong khi cài đặt oracle jdk là xóa .tar.gz
tệp đã tải xuống có kích thước tương đương với thư mục kết quả vì .jar
các tệp đã được nén, tar.gz chỉ ở đó để "đóng gói" chúng.
Bạn phải thực hiện tất cả điều này trong cùng một RUN
lệnh, kết hợp với &&
để tránh thêm các lớp mà bạn sẽ không xóa kích thước bằng cách xóa các tệp khỏi lớp trước đó.