最近,在为客户端部署应用程序的Linux版本时遇到了很多问题(更新的库,缺少的库,安装路径),并且我们正在寻求使用Docker进行部署。
我们的应用是用户界面,因此我们自然可以使用
-e DISPLAY:$DISPLAY -v /tmp/X11-unix:/tmp/X11-unix
我们实际上可以看到弹出的用户界面。
但是,当需要打开文件时,问题就从这里开始。我们只想浏览主机系统并将任何输出文件保存在主机上(输出目录由打开的文件的位置确定)。
您会为此建议什么策略?
我们希望客户端看不到本地运行或在Docker内部运行的应用之间的区别。我们正在处理启动脚本,因此客户端似乎仍会双击它以启动应用程序。我们可以在其中添加docker run命令所需的所有配置。
最佳答案
在@CFrei和@Robert的建议之后,这似乎是一个很好的解决方案:
docker run \
-ti \
-u $(id -u):$(id -g) \
-v /home/$(id -un):/home/$(id -un) \
-v /etc/passwd:/etc/passwd \
-w $(pwd) \
MyDockerImage
现在,该容器内创建的每个文件都完全位于用户拥有的主机上的正确目录中。
从容器内部看,它确实看起来像主机,这对客户端非常有用。
再次感谢您的帮助!
我希望这可以帮助其他人。
关于docker - 在容器中运行应用的情况下,从主机上打开/编辑/保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44415216/