Tất cả những gì tôi có thể tìm thấy là một hình ảnh Docker chính thức cho Ubuntu Desktop trên Docker Hub. Không có cái nào cho Ubuntu Server?
Điều đó có nghĩa là, tôi phải tạo hình ảnh cơ sở của riêng mình bằng cách sử dụngscratch
?
Tất cả những gì tôi có thể tìm thấy là một hình ảnh Docker chính thức cho Ubuntu Desktop trên Docker Hub. Không có cái nào cho Ubuntu Server?
Điều đó có nghĩa là, tôi phải tạo hình ảnh cơ sở của riêng mình bằng cách sử dụngscratch
?
Câu trả lời:
Tất cả những gì tôi có thể tìm thấy là một hình ảnh Docker chính thức cho Ubuntu Desktop trên Docker Hub.
Không nơi nào trang đó nói rằng đó là hình ảnh Ubuntu Desktop . Dù sao, điều đó sẽ không có ý nghĩa vì bạn (nói chung) không chạy môi trường máy tính để bàn trong bộ chứa Docker.
Bạn có thể kiểm tra nó, lần đầu tiên chạy bash trong Ubuntu container bằng cách:
docker run -it ubuntu /bin/bash
-i
,--interactive
Giữ STDIN mở ngay cả khi không được đính kèm
-t
,--tty
Phân bổ một giả TTY
Sau đó chạy lệnh sau để kiểm tra nếu ubuntu-desktop
được cài đặt:
dpkg -l ubuntu-desktop
Câu hỏi là về Ubuntu Server, nhưng tất cả các câu trả lời và thảo luận là về Ubuntu Desktop. Vì vậy, tôi sẽ trả lời cả hai, nhưng trước tiên hãy giải quyết Ubuntu Desktop. Cuối cùng, (và có thể không được khuyến nghị cho một bộ chứa phù du và hầu hết các bộ chứa nên phù hợp với các thực tiễn tốt nhất của Docker , nhưng này, có ngoại lệ.) Bạn có thể cài đặt Ubuntu Desktop và Ubuntu Server trên một bộ chứa và chạy nó.
LƯU Ý: Bạn có thể thêm--rm
cờ để giữ cho bộ nhớ của máy chủ không bị đầy hơi bằng cách tự động xóa các thùng chứa sau khi chúng chạy, nếu bạn chỉ đang thử nghiệm với chúng.
docker run --rm -it ubuntu
Đây là một container khá lớn! ~ 1,5Gb
Nếu bạn chạy:
docker run -it ubuntu
Sau đó, trong container:
> apt-get update && apt-get install -y ubuntu-desktop
Bạn sẽ tải xuống Ubuntu Desktop một cách hiệu quả
Một Dockerfile có thể được thực hiện:
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-desktop
Sau đó xây dựng nó:
docker build -t ubuntu-desktop .
Và chạy nó:
docker run -it ubuntu-desktop
docker run -it ubuntu
Từ ga container:
apt-get update && apt-get install -y ubuntu-server
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server
Xây dựng nó:
docker build -t ubuntu-server .
Chạy nó:
docker run -it ubuntu-server
docker run -it ubuntu
Thiết bị đầu cuối chứa:
apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
FROM ubuntu:16.04
ENV DEBIAN_FRONTEND noninteractive
RUN apt-get update && apt-get install -y ubuntu-server ubuntu-desktop
Xây dựng nó:
docker build -t ubuntu-server-desktop .
Chạy nó:
docker run -it ubuntu-server-desktop.
Chúng bắt đầu với các tệp cloudimg làm cơ sở.
Nếu bạn nhìn vào bảng kê khai cho hình ảnh đám mây ở đây thì có vẻ như đó là hình ảnh cơ sở triển khai máy chủ.
IMHO, máy tính để bàn Ubuntu hầu hết chỉ là ubuntu server
+ desktop environment
. Bản repo chính thức mà OP chỉ ra không chứa bất kỳ hình ảnh nào với môi trường máy tính để bàn, vì vậy bạn chỉ nên coi chúng là phiên bản máy chủ.
Để tối giản, tôi hiện đang sử dụng gcr.io/google_containers/ubuntu-slim:0.14
cho dự án cá nhân của tôi. Nó là một hình ảnh Ubuntu tối thiểu nhưng đầy đủ chức năng với chỉ bằng 1/3 kích thước của những hình ảnh chính thức đó.
Để làm rõ hơn câu trả lời ghanbari. Đây là đầu ra của các lệnh. Chắc chắn không có gói nào liên quan đến máy tính để bàn.
> docker pull ubuntu:latest
> docker run -t -i ubuntu /bin/bash
> dpkg -l ubuntu-desktop
> dpkg-query: no packages found matching ubuntu-desktop
apt-get update
.
Để chạy phiên bản Ubuntu cụ thể bằng Docker, hãy chạy lệnh này:
docker run -it ubuntu:16.04 /bin/bash
16.04 là số phiên bản. Nếu bạn bỏ qua số phiên bản, hình ảnh mới nhất sẽ được chọn từ kho lưu trữ. Bạn không cần phải lấy toàn bộ Dockerfile và tạo nó từ đầu.