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
Hãy ngừng làm những việc mà máy móc có thể thực hiện thay bạn!
Hướng dẫn tạo ảnh chân dung trên cát bằng ChatGPT
Thiết kế quy trình tự động hóa đầu tiên của bạn với AI
Cách tạo template trong Notion và chia sẻ với mọi người
Tự động hóa email và giao tiếp
Hướng dẫn tạo trò chơi tương tác trên ChatGPT
Xử lý dữ liệu và quy trình làm việc nhiều bước
Xử lý lỗi và các trường hợp ngoại lệ
Hướng dẫn tạo video hộp quà mở nắp
Kiểm thử, giám sát và cải tiến tự động hóa
Hướng dẫn tạo video từ 1 hình ảnh trên Google Flow
Cách chuyển chữ viết tay trong ảnh thành văn bản
Số liệu, giám sát và ROI trong hệ thống hỗ trợ khách hàng tích hợp AI
AI Agent là gì? Tại sao lại cần đến nó vào thời điểm này?
Cách khai thác Claude Cowork hiệu quả cho công việc hàng ngày
Kiến trúc agent: Mục tiêu, công cụ và lý luận
Cách tạo video hoạt hình bằng Anijam AI rất đáng thử
Xây dựng agent đầu tiên của bạn
Prompt tạo ảnh phong cách Fantasy ảo diệu