Sử dụng docker: Tạo container có giao diện

Docker là  công cụ tạo máy ảo (container) trên linux nhanh gọn và đơn giản. Bài viết này sẽ hướng dẫn các bạn tạo một container có giao diện UI trên Linux.

Xem thêm:

Docker là gì?

Sử dụng Docker như thế nào?

Truyền lệnh từ Host vào Docker Container

Sử dụng Docker: Export/Import, Save/Load Container

Sử dụng Docker: Dockerfile

Cài đặt và sử dụng Docker Registry

Tạo container

Để tạo một container có giao diện mình sẽ sử dụng một docker image có tên là consol/centos-xfce-vnc. 

Trước hết bạn cần cài đặt docker trên hệ thống, nếu chưa cài đặt bạn có thể xem hướng dẫn cài tại đây

Cú pháp để tạo một docker container (centos) có giao diện như sau:

docker run --shm-size=512m  -p 5901:5901 -p 6901:6901 --restart always -e VNC_RESOLUTION=1920x1080 -e VNC_PW=123456 --user $(id -u):$(id -g) -v /opt/:/opt/ --name VNC_CENTOS_REMOTE -it consol/centos-xfce-vnc:1.3.0 /bin/bash

Trong đó:

  • “docker run”: tạo container
  • “–shm-size=512m”: đặt kích thướng ram disk cho container, nếu bạn để mặc định sẽ gây ra trường hợp chrome bị cash do thiếu memory
  • “-p 5901:5901 -p 6901:6901”: map port remote cho vnc và trình duyệt
  • “–restart always”: luôn khởi động container
  • “-e VNC_RESOLUTION=1920×1080”: độ phân giải của container
  • “-e VNC_PW=123456”: password truy cập container
  • “–user $(id -u):$(id -g)”:  thay đổi user và group mặc định của container bằng user hiện tại
  • “-v /opt/:/opt/”: liên kết thư mục opt trong container và host
  • “–name VNC_CENTOS_REMOTE”: tên container
  • “-it consol/centos-xfce-vnc:1.3.0”: tên image phiên bản 1.4.0

Console Log:

[root@ITFROMZERO ~]# docker run --shm-size=512m  -p 5901:5901 -p 6901:6901 --restart always -e VNC_RESOLUTION=1920x1080 -e VNC_PW=123456 --user $(id -u):$(id -g) -v /opt/:/opt/ --name VNC_CENTOS_REMOTE -it consol/centos-xfce-vnc:1.3.0 /bin/bash
Unable to find image 'consol/centos-xfce-vnc:1.4.0' locally
1.4.0: Pulling from consol/centos-xfce-vnc
a02a4930cb5d: Already exists
91ee5a98d25d: Pull complete
34dcfe98c544: Pull complete
37148de94ed8: Pull complete
be9af41cfe6b: Pull complete
8f4a76f550be: Pull complete
40639c912cdd: Pull complete
99e23e969a7d: Pull complete
29d1aff5ee47: Pull complete
802daa865e1f: Pull complete
6cdff890f573: Pull complete
853c1abd2a9f: Pull complete
bd256b6f9b16: Pull complete
03cad9d85168: Pull complete
edaa82c31e98: Pull complete
Digest: sha256:b3592f6ca3692abdd10194e23853f4eae0f2b95800dbadae84d53182d429bd5d
Status: Downloaded newer image for consol/centos-xfce-vnc:1.4.0
USER_ID: 0, GROUP_ID: 0

------------------ update chromium-browser.init ------------------

... set window size 1920 x 1080 as chrome window size!


------------------ change VNC password  ------------------

------------------ start noVNC  ----------------------------

------------------ start VNC server ------------------------
remove old vnc locks to be a reattachable container
start vncserver with param: VNC_COL_DEPTH=24, VNC_RESOLUTION=1920x1080
...
start window manager
...


------------------ VNC environment started ------------------

VNCSERVER started on DISPLAY= :1
        => connect via VNC viewer with 172.17.0.18:5901

noVNC HTML client started:
        => connect via http://172.17.0.18:6901/?password=...



------------------ EXECUTE COMMAND ------------------
Executing command: '/bin/bash'
USER_ID: 0, GROUP_ID: 0
bash-4.2# exit

Truy cập vào container

Sau khi thực thi câu lệnh trên, bạn có thể truy cập container từ VNC Viewer (cổng 5901) hoặc trình duyệt Web (cổng 6901) .

Remote bằng trình duyệt:

http://192.168.1.90:6901

Remote bằng VNC Viewer

Mở VNC Viewer và remote đến IP với cổng 5901

Ví dụ: 192.168.1.90:5901

 

Để tham khảo thêm hoặc tạo các container phiên bản khác (Ubuntu,..) các bạn truy cập https://hub.docker.com/r/consol/centos-xfce-vnc

Chúc các bạn thành công.