zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    一款可以下拉搜索html下拉框控件
    Springboot+JPA+Thymeleaf 校园博客完整小网站
    OAuth 2.0 认证的原理与实践
    BootStrap 专题
    Rest接口和Thymeleaf的两个坑
    Android属性动画PropertyAnimation LayoutTransition(布局容器动画)
    Android 5.0中使用JobScheduler
    遍历Map的四种方法
    Android Error:(1,N1) 错误: 需要class, interface或enum
    Android.app.SuperNotCalledException错误
  • 原文地址:https://www.cnblogs.com/Rong-/p/7670752.html
Copyright © 2011-2022 走看看