1, 下载安装JDK的docker container

我是从这个源下载已经做好的JDK8的container:

https://registry.hub.docker.com/u/dockerfile/java/

docker run -it --rm dockerfile/java:oracle-java8

2, 添加GUI支持

有好几种方案,我使用的是这种:

http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/

还有一种是:

https://pelle.io/2014/07/11/delivering-gui-applications-with-docker/

我没有试过。

 

3,安装swt-gtk

但是这时候运行swt程序,还是会抛如下错误:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: no swt-gtk-3740 in java.library.path no swt-gtk in java.library.path Can't load library: /home/gabriel/.swt/lib/linux/x86_64/libswt-gtk-3740.so

Can't load library: /home/gabriel/.swt/lib/linux/x86_64/libswt-gtk.so

需要:

1) 添加architecture i386

sudo dpkg --add-architecture i386

sudo apt-get update

参考:

http://askubuntu.com/questions/463457/how-to-find-packages-when-updating-ubuntu-and-creating-standard-source-list-file

http://askubuntu.com/questions/551840/unable-to-locate-package-libc6-dbgi386-in-docker

2)安装gtk

sudo apt-get install libgtk2.0-0:i386

参考:

http://askubuntu.com/questions/232691/cannot-open-shared-object-file-no-such-file-or-directory

3)安装swt支持

sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

并拷贝到

sudo cp /usr/lib/jni/libswt-*3740.so ~/.swt/lib/linux/x86_64/

参考http://askubuntu.com/questions/125150/unsatisfied-link-error-and-missing-so-files-when-starting-eclipse

使Docker Container支持运行SWT程序的更多相关文章

  1. 在 Docker 容器中运行应用程序

    案例说明 运行 3 个容器,实现对网站的监控. 三个容器的说明: 容器 web: 创建自 nginx 映像,使用 80 端口,运行于后台,实现 web 服务. 容器 mailer: 该容器中运行一个 ...

  2. 在docker container中运行docker-compose

    为了保持宿主主机的环境干净,因此将docker-compose安装到一个基于centos7.3的容器之中,因为tianchao屏蔽了amazonaws,最后选择了通过pip方式来安装,这也是官方推荐的 ...

  3. 关于运行SWT程序遇到的一个错误的总结

    具体的错误信息如下: Exception in thread "main" java.lang.SecurityException: SHA1 digest error for o ...

  4. 在Docker for Windows中运行GUI程序

    Docker运行GUI原理 Docker目前大多应用在服务器领域,那么在Docker中可以运行GUI程序吗?怀着好奇心google了一番,还真有人写了一篇文章 running-gui-applicat ...

  5. Docker源码分析(七):Docker Container网络 (上)

    1.前言(什么是Docker Container) 如今,Docker技术大行其道,大家在尝试以及玩转Docker的同时,肯定离不开一个概念,那就是“容器”或者“Docker Container”.那 ...

  6. 如何在查看docker container内进程信息,与宿主机上进程信息的映射关系

    docker container内运行的进程,在宿主机上,通过ps也是能够查到的,但是在不熟悉命令的时候,无法快速找到他们的关系. 这里科普一个基础命令 docker top 1. 找到容器的id d ...

  7. 【转】如何配置EditPlus中Java运行环境,运行Java程序

    如何配置EditPlus中Java运行环境,运行Java程序 http://jingyan.baidu.com/article/86112f13725e2e2736978711.html 分步阅读 E ...

  8. Docker4Windows -- 从外部(非本机host)访问 由docker container运行的程序

    背景 当我们在windows 上面运行docker container的时候,我们需要借助于模拟器(例如,Virtual box/Hyper V),她的目的主要是在我们的windows系统上面模拟出一 ...

  9. 如何在一个Docker中同时运行多个程序进程?

    我们都知道Docker容器的哲学是一个Docker容器只运行一个进程,但是有时候我们就是需要在一个Docker容器中运行多个进程 那么基本思路是在Dockerfile 的CMD 或者 ENTRYPOI ...

随机推荐

  1. log4net 按时间输出日志

    参考:(转)非常完善的Log4net详细说明 log4net 按天与按小时记日志的配置 Log4net 中输出日志到文件,文件名根据日期生成 log4net按日志级别(debug,info,warn, ...

  2. haproxy学习之https配置

    haproxy学习之https配置   原文  http://www.cnblogs.com/ilanni/p/4941056.html   如何配置https,以及https在实际生产环境中的应用. ...

  3. Git过滤文件和文夹

    今天是2016年10月份的最后一天,感觉时间过得真的是飞快呢,此刻天下着小雨,天气灰蒙如天每个人的心情一样.在此把这个月的项目上传到git上,就需要过滤一些项目自动生成的不必要的文件,如:bin,ob ...

  4. delphi之事件

    delphi的事件如上图所示: 图中oncloseup代表的是日期选择下拉框关闭时触发的事件. //事件定义 procedure Ondatechange(Sender: TObject); //事件 ...

  5. vpn打通结果ping不通

    A 是一台服务器 B 是一台openvpn A 设置路由 route add -net 172.16.1.0/24 gw 192.168.125.228 B 设置伪装 -A POSTROUTING - ...

  6. C++中的"未定义的行为"

    2.1 位运算 位运算的运算对象是整数类型的,并且把运算对象看成是一个二进制位的集合.运算对象可以是带符号也可以是无符号.如果是带符号且值为负,那么位运算如何处理运算对象的符号位依赖于机器.而且此时的 ...

  7. 简化C语言文法

    程序 → 外部声明|程序 外部声明 外部声明 → 定义函数|定义 函数定义 → 类型标识符 声明部分语句 类型标识符 → 空类型|字符型|整型|浮点型 声明部分语句 → 指针 直接声明|直接声明 指针 ...

  8. Ideas about the future of management

    1. Business markets a. greater competition among companies b. increase in power of global companies ...

  9. Python语言十分钟快速入门

    Python(蟒蛇)是一种动态解释型的编程语言.Python可以在Windows.UNIX.MAC等多种操作系统上使用,也可以在Java..NET开发平台上使用. AD:[51CTO技术沙龙]移动时代 ...

  10. EF 数据初始化

    数据库不存在时重新创建数据库: Database.SetInitializer<testContext>(new DropCreateDatabaseAlways<testConte ...