Docker开发实践:在windows 7中使用Docker for windows访问GUI
1 安装Docker for windows
1.1下载Docker for windows
从下面的网址中下载Docker for windows并安装.
https://www.docker.com/products/docker-toolbox
1.2启动Docker for windows及其他处理
双击快捷方式"Docker Quickstart Terminal"启动该软件.
使用如下命令设置代理:
docker-machine ssh default
sudo -i
cat /var/lib/boot2docker/profile | tail -n 1
export HTTP_PROXY=http://ip:port
exit
exit
docker-machine start
2 SSH访问
因为docker for windows的terminal不能拷贝,所以建议使用SSH进行操作.
2.1获取虚拟机IP
docker for windows可能是在windows上进行访问,所以不能使用ifconfig命令,只能使用ipconfig,得到的地址是windows的IP地址.

Docker for windows是在一个虚拟机上运行的, 用户名/密码为: docker/tcuser.
打开虚拟机,在命令行中输入ifconfig可以获取虚拟机IP地址.

2.2 通过SSH访问
使用得到的IP,22号端口, 用户名/密码:docker/tcuser访问docker.
例如:

3创建Dockerfile并编译
此处Dockerfile及start.sh与前面的一样.
我是将Dockerfile放到Windows底下,具体目录是D:/docker/desktop.
使用
3.1 Dockerfile
# Dockerfile of Run GUI
FROM centos:6.9
MAINTAINER email@email.com
COPY start.sh /home/start.sh
COPY lib/libssl.so.6 /usr/lib/libssl.so.6
COPY lib/libssl.so.0.9.8e /usr/lib/libssl.so.0.9.8e
COPY lib/libcrypto.so.6 /usr/lib/libcrypto.so.6
COPY lib/libcrypto.so.0.9.8e /usr/lib/libcrypto.so.0.9.8e
RUN /home/start.sh
ENTRYPOINT ["gui.py"]
3.2 Start.sh
# set DNS of rock901.atc
echo ip rock901.atc >> /etc/hosts
cat /etc/hosts
# recache yum source
rm -rf /etc/yum.repos.d/*
curl -o /etc/yum.repos.d/CentOS-Local.repo http://rock901.atc/downloads/CentOS-Local.repo
cat /etc/yum.repos.d/CentOS-Local.repo
yum clean all
yum makecache
yum install -y wxGTK*
yum install -y xulrunner.i686
yum install -y libXtst.i686
yum install –y libcanberra-gtk2.i686
yum install -y gtk2-engines.i686
yum install -y PackageKit-gtk-module.i686
yum install -y openssl openssl-devel
3.3 在虚拟机中编译Dockerfile
我们在虚拟机中编译Dockerfile,编译命令为:
docker build -t author_docker69_v1 /home/author/Dockerfiler/desktop
会提示我们没有权限执行start.sh.
docker@default:/mnt/sda1/tmp/author/desktop$ docker build -t docker69_v1 .
Sending build context to Docker daemon 3.072kB
Step 1/8 : FROM centos:6.9
---> bf590786153a
Step 2/8 : MAINTAINERemail@mmail
---> Using cache
---> 2fd4d38e15a2
Step 3/8 : COPY start.sh /home/start.sh
---> Using cache
---> 402e8737c90d
Step 4/8 : RUN /home/start.sh
---> Running in 3a0716e1b5a8
/bin/sh: /home/start.sh: Permission denied
The command '/bin/sh -c /home/start.sh' returned a non-zero code: 126
docker@default:/mnt/sda1/tmp/matthew/desktop$
3.4 在Docker for windows terminal编译Dockerfile
在虚拟机中无法编译Dockerfile, 需要在docker For windows terminal中编译.
使用命令:
cd /tmp/desktop
docker build -t docker69_v1 .
编译成功:
注意:
1: 在” Docker Quickstart Terminal”中能访问Windows的目录, 编译后的image在” Docker Quickstart Terminal”和ssh(访问虚拟机)中都能查看.
4 Xming
在Windows7中运行Docker里的GUI, 是使用SSH远程访问Linux里的Docker容器.
是使用X11服务来实现的. 需要在Windows中安装Xming.
注:
1: 无法使用Docker for windows将Docker放在Windows上运行,并通过Windows访问Ride GUI程序,因为Docker是安装在一个虚拟机上,而这个虚拟机没有权限安装软件,例如SSH的服务器端和客户端,无法设置/etc/ssh/sshd_config中的X11Forwarding配置项.
打算下一步尝试在Windows下访问Docker for windows的Docker.
2: Xming: Xming是一个在 Microsoft Windows 操作系统上运行 X Window System 的自由软件。主要功能是通过在Linux平台上通过交叉编译的方法,实现了跨越操作系统对X GUI的表现.
5 安装Xming和Putty
5.1 下载软件
Xming的下载地址:https://xming.en.softonic.com/;https://sourceforge.net/projects/xming/
当前使用Xming-6-9-0-31-setup.exe.
Putty下载地址: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
5.2 配置Xming
安装Xming后, 需要启动XLaunch.

一路Next下来,注意下面页面选择No Access Control

启动后,会在下面看到相关的图标.
5.3 配置Putty
设置服务器(运行Docker的linux)IP.

添加用户名:

X11的相关配置

6使用putty启动Docker
打开putty并链接虚拟机, 启动docker.命令如下:
docker run -d -v /etc/localtime:/etc/localtime:ro --net=host -e DISPLAY=192.168.99.1:0.0 -v $HOME/slides:/root/slides -v $HOME/.Xauthority:/root/.Xauthority -e GDK_SCALE -e GDK_DPI_SCALE --name xmrtest -v /home/author/robot:/home/robot docker69_v1
Docker开发实践:在windows 7中使用Docker for windows访问GUI的更多相关文章
- 『开发技术』Docker开发教程(一)安装与测试(Windows 家庭版)
0.前言 针对其他系统和版本,Docker都很容易安装,可以参考官方教程:https://docs.docker.com/docker-hub/ 由于Windows10家庭版无法安装docker,因此 ...
- docker开发实践
一:docker的定义和使用场景: Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的.可移植的.自给自足的容器.开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VM ...
- 使用 Puppet 在 Windows Azure 中配备 Linux 和 Windows 环境
发布于 2013-12-11 作者 Ross Gardler 微软开放技术有限公司 (MS Open Tech) 很高兴地宣布发行新的 Windows Azure Puppet 模块.通过这个模 ...
- Windows编程中的若干难点 - Windows程序设计(SDK)007
Windows编程中的若干难点 让编程改变世界 Change the world by program 一个窗口的生与死 我记得有童鞋会问:如果我的程序需要在关闭前让用户判断是否确定要关闭窗口,我应该 ...
- Android开发---如何操作资源目录中的资源文件4 ---访问xml的配置资源文件的内容
Android开发---如何操作资源目录中的资源文件4 XML,位于res/xml/,这些静态的XML文件用于保存程序的数据和结构. XmlPullParser可以用于解释xml文件 效果图: 描述: ...
- 有关 Windows 10 中“适用于 Linux 的 Windows 子系统(Beta)”
1.如何启用?(未来应该可从应用商店中直接安装) 在"控制面板"的"启用或关闭 Windows 功能"中进行勾选安装.(安装完成后需要重新启动) 2.然后呢? ...
- Docker学习笔记之-在CentOS中安装Docker
上一节演示了如何 通过Xshell连接CentOS服务,链接:Docker学习笔记之-通过Xshell连接 CentOS服务 本节将演示 如何在CentOS中安装 Docker 第一步:更新系统包到最 ...
- 在Windows环境中开始Docker的学习和体验
研究docker有一段时间了,当然我主要的使用环境还是在Linux中,确实很方便. 但也有不少朋友希望使用Windows来工作学习,这里介绍一下在Windows中如何快速开始Docker的学习和体验吧 ...
- AI开发实践:关于停车场中车辆识别与跟踪
摘要:本案例我们使用FairMOT进行车辆检测与跟踪.yolov5进行车牌检测.crnn进行车牌识别,在停车场入口.出口.停车位对车辆进行跟踪与车牌识别,无论停车场路线多复杂,小车在你掌控之中! 本文 ...
- Windows phone 应用开发系列教程(更新中)
Windows phone 应用开发[1]-Text To Speech 作为开篇章节.第一篇将在如下介绍一些Windows phone比较有意思的东西-Text To Speech[文 ...
随机推荐
- Ansible自动化管理集群,Playbook语法
Ansible配置文件存在优先级的问题 ANSIBLE_CONFIG ansible.cfg 项目目录 .ansible.cfg 当前用户的家目录 /etc/ansible/ansible.cfg A ...
- docker连不上私有仓库Harbor
解决办法: # 配置多个host(配置本地域名映射) [root@vm10-11-0-38 ~]# cat /etc/hosts 127.0.0.1 localhost localhost.local ...
- 关闭 Chrome 浏览器 更新错误 弹窗
1 Chrome使用一段时间后,右上角总会弹出弹窗,并且影响鼠标聚焦,如下图: 2 解决方式: 右键点击 桌面Chrome图表,然后点击属性,按照下图操作: 在 快捷方式--目标 后输入: --di ...
- Ubuntu 22.04 LTS 离线安装 Harbor v2.11 (附https认证,Trivy镜像扫描)
Harbor 介绍 Harbor是一个开源的企业级Docker Registry服务,它提供了一个安全.可信赖的仓库来存储和管理Docker镜像.Harbor翻译为中文名称为"庇护:居住;& ...
- ABP 接口访问变慢,缓存清理,请求超时
发布后过一个小时或者不久访问过慢 第一次访问慢,第二次访问变快 总结 发布后IIS 访问 过慢的原因考虑,IIS回收.缓存清理.去host项目里面配置缓存过期时间再去试验
- ABP发布后通过外部URL调用不到方法
MVC要与Host项目发布保持同步,如果Host工程不保持同步就会导致调用不到新的方法,因为找不得新的dll.
- Jx.Cms开发笔记(七)-升级BootstrapBlazor到6.9.x
由于BootstrapBlazor升级到6.9以后的升级还是非常大的,比如图标库升级到了6.1.2,bs升级到了5.2.0.所以这里记录一下升级过程. 升级BootstrapBlazor主程序 直接升 ...
- VLC web(http)控制 (3) 播放控制
VLC web(http) 播放控制: 1.如果已经在打开视频 播放和暂停都是:http://127.0.0.1:8080/requests/status.xml?command=pl_pause ...
- 【异或运算】codeforces 1153 B. Dima and a Bad XOR
前言 异或运算:是一种在二进制数系统中使用的逻辑运算.它的基本规则是对两个二进制位进行比较,如果这两个位不同,则结果为 \(1\):如果相同,则结果为 \(0\). 异或运算的规则 \(0\) XOR ...
- 【杂谈】如何选择:Session 还是 JWT?
服务端如何验证客户端已经登录? 在用户成功登录后,服务端会发放一个凭证.之后,客户端的每次请求都需要携带该凭证,服务端通过验证凭证的有效性来判断用户是否已登录,并处理请求. 以下是 Session 和 ...