VNC (Virtual Network Compoting) là một hệ thống chia sẻ màn hình đồ họa nó bằng RFB (Remote Frame Buffer) để truy cập, điều khiển máy tính từ xa. Nó truyền được cả thông tin bàn phím, sự kiện bấm chuột từ máy local đến máy remote cùng với màn hình đồ họa từ máy remote về local.

Thường thì bạn có thể cài đặt VNC trên các Server CentOS, Ubuntu nếu muốn chạy các ứng dụng có GUI trên Server (nhiều bạn thích điều khiển server bằng các ứng dụng GUI). Bằng cách cài đặt Server VNC trên container ta có thể chạy các ứng dụng có GUI (Graphic User Interface) trong container. Sau đây ta sẽ thử cài đặt và chạy Firefox trong Docker.

Chạy ứng dụng GUI trong container Ubuntu với vnc4server

vnc4server là một VNC Server, nó lắng nghe trên cổng 590X với X là UID của user. Do ta sẽ chạy container với user root có UID =1 nên ta sẽ phải ánh xạ đến cổng 5901.

Chạy ubuntu có mở cổng 5901

docker run -it -p 5901:5901 ubuntu

Cài đặt VNC Server

apt-get update -y
apt-get install vnc4server -y

Thiết lập kích thước màn hình và biến môi trường DISPLAY

Thiết lập kích thước là 1200x1000 (tùy chọn)

vnc4server -geometry 1200x1000

Sau khi nhập lệnh, nó có yêu cầu thiết lập password để truy cập màn hình container. Bạn đặt theo password của bạn, cuối cùng nó có thông báo tên màn hình:

New '59f71f150245:1 ()' desktop is 59f71f150245:1

Có tên màn hình rồi, thiết lập nó cho biến môi trường DESTOP

export DISPLAY=59f71f150245:1

Như vậy là xong, giờ có thể thiết lập kết nối đến màn hình container với địa chỉ dạng vnc://ip:port ví dụ vnc://127.0.0.1:5901 với password thiết lập ở trên.

Trình client để kết nối: Nếu máy của bạn là Windows, Linux cài TightVNC nếu macOS có sẵn Screen Sharing.

Cài firefox để chạy thử

apt-get install firefox -f

Sau đó gõ firefox để chạy.

Giờ hãy thực hiện kết nối vào màn hành với địa chỉ vnc://127.0.0.1:5901, bạn thấy firefox trên màn hình.

vnc
Đăng ký theo dõi ủng hộ kênh