Thông tin liên hệ
- 036.686.3943
- admin@nguoicodonvn2008.info
Docker thường được sử dụng cho các ứng dụng phía server và dòng lệnh. Tuy nhiên, với thiết lập phù hợp, bạn cũng có thể chạy các ứng dụng dựa trên GUI bên trong những container. Các container này có thể bao gồm những thư viện GUI và công cụ hiển thị, cho phép các ứng dụng chạy trong môi trường an toàn và biệt lập. Phương pháp này giúp đơn giản hóa việc phát triển, thử nghiệm và triển khai các ứng dụng GUI trên nhiều máy hoặc môi trường hệ điều hành khác nhau. Bài viết này sẽ hướng dẫn bạn cách chạy các ứng dụng GUI bên trong những container Docker với thiết lập tối thiểu.
Sau đây là những lý do chính tại sao chạy ứng dụng GUI trong Docker có thể có lợi:
Để chạy ứng dụng GUI trong Docker, trước tiên bạn phải đảm bảo rằng Docker đã được cài đặt trên hệ thống Linux của mình. Bạn có thể kiểm tra điều này bằng cách chạy lệnh sau:
docker --version
Nếu lệnh này trả về số phiên bản, điều đó có nghĩa là Docker đã được cài đặt và đang hoạt động. Nếu không, bạn có thể sẽ thấy lỗi "command not found".
Sau khi Docker được thiết lập đúng cách, bạn có thể chuyển sang các bước tiếp theo.
Bây giờ, hãy khởi động service Docker bằng lệnh sau:
sudo systemctl start docker
Để kiểm tra xem service Docker có đang chạy đúng không, hãy chạy:
sudo systemctl status docker
Đầu ra xác nhận rằng service Docker đang hoạt động và chạy mà không có bất kỳ sự cố nào:
Hãy tạo một thư mục có tên là "dockerGUI", nơi chúng ta sẽ lưu trữ tất cả các file liên quan đến Docker để chạy các ứng dụng GUI:
mkdir dockerGUI
Bây giờ, hãy điều hướng đến thư mục này để đảm bảo rằng tất cả các file tiếp theo mà chúng ta tạo hoặc sửa đổi sẽ được lưu trong thư mục dockerGUI:
cd dockerGUI
Tạo một file mới có tên là dockerGUIFile để xác định cấu hình image Docker:
nano dockerGUIFile
Bây giờ, hãy dán các dòng code sau vào dockerGUIFile:
FROM jess/firefox
ENV DISPLAY=:0
CMD ["firefox"]
Đoạn code trên yêu cầu Docker sử dụng image dựng sẵn của Firefox và thiết lập môi trường hiển thị để GUI có thể xuất hiện trên hệ thống host. Hơn nữa, nó đảm bảo Firefox tự động khởi chạy khi container chạy.
Lưu ý: Để thử một ứng dụng khác, chỉ cần thay đổi image và lệnh trong Dockerfile. Ví dụ, để chạy Gedit, bạn có thể sử dụng image Ubuntu chính thức và cài đặt ứng dụng trong quá trình build như sau:
FROM ubuntu
RUN apt-get update && apt-get install -y gedit
ENV DISPLAY=:0
CMD ["gedit"]
Bây giờ, cấu hình Docker đã được thiết lập trong dockerGUIFile, hãy build image Docker bằng lệnh sau:
sudo docker build -t myfirefox:1 -f dockerGUIFile .
Lệnh này build một image Docker từ dockerGUIFile, đặt tên là myfirefox với tag 1 và sử dụng thư mục hiện tại làm ngữ cảnh:
Bây giờ, hãy bật hỗ trợ GUI cho các container Docker bằng cách chạy lệnh sau:
xhost +local:docker
Đầu ra xác nhận rằng các client cục bộ (như Docker container) đang chạy trên hệ thống hiện được phép kết nối với máy chủ X:
Bây giờ, hãy chạy container bằng lệnh sau để khởi chạy Firefox với hỗ trợ GUI trên hệ thống host của bạn:
docker run -it --rm -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix myfirefox:1
Kết quả là, lệnh này kết nối container với màn hình, cho phép Firefox mở trên màn hình của bạn giống như một ứng dụng gốc:
Lưu ý: Sử dụng tùy chọn --rm khiến Docker tự động xóa container sau khi ứng dụng đóng, giúp hệ thống của bạn sạch sẽ và ngăn không cho nó hiển thị trong docker ps -s.
Sau khi sử dụng xong ứng dụng GUI, bạn nên đóng quyền truy cập server X vì lý do bảo mật:
xhost -local:docker
Nguồn tin: Quantrimang.com:
Ý kiến bạn đọc
Những tin mới hơn
Những tin cũ hơn