在一些特殊场景下,我们还是希望在Docker中使用图形化界面的,比如用Docker安装Oracle。大致有两种思路。

第一种:Docker中直接运行图形化桌面

这种方案需要在Docker中安装图形化组件,还需要安装vnc-server。经过各种折腾,我是没弄出来,vncserver报错启动不了。

这种方式即使能成功,安装的东西也太多;不利于Docker的分发和运行,关键是后面我们有更好的方法在Docker中调出图形化窗口;下面重点介绍第二种方法。

参考:

https://www.jianshu.com/p/38a60776b28a

https://forums.centos.org/viewtopic.php?t=6727

第二种:Docker借用宿主机的图形化显示

此时需要先在主机中安装桌面窗口系统,然后安装VNC相关软件;启动VNC服务。

1
2
3
4
5
# 用共享主机窗口系统的方式,启动Docker
docker run -itd --name=Oracle11gR2 -h=Oracle11gR2-DB1 \
-v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=unix$DISPLAY -e GDK_SCALE -e GDK_DPI_SCALE \
--restart=no --privileged --volume /sys/fs/cgroup:/sys/fs/cgroup:ro -m=48G --memory-swap=48G \
10.10.200.11:5000/ctos76 /sbin/init

通过VNC连接到主机的图形界面,在窗口中打开控制台:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
[root@WEB-DB121 ~]# xdpyinfo |grep name
name of display:    :2
# 记住上面的 :2 后面在Docker中需要用到

[root@WEB-DB121 ~]# xhost 
access control disabled, clients can connect from any host
SI:localuser:root
[root@WEB-DB121 ~]# docker exec -it Oracle11gR2-23 bash
[root@fdoracle23 /]# su - oracle
Last login: Thu Apr 28 06:51:10 UTC 2022 on pts/2
[oracle@fdoracle23 ~]$ export DISPLAY=:2
# 执行完上面的命令后,进入Docker就可以调出Oracle的安装界面设置安装了。

这种办法能在用Docker安装Oracle的场景中用到,特别的简单方便。

参考:

https://mp.weixin.qq.com/s/7btzSqDGxNanRfBnU-6ZIQ

https://blog.csdn.net/ericcchen/article/details/79253416

(完)