Docker開發實踐:在windows 7中使用Docker for windows訪問GUI

1 安裝Docker for windows

1.1下載Docker for windows

從下面的網址中下載Docker for windows並安裝.html

https://www.docker.com/products/docker-toolboxlinux

1.2啓動Docker for windows及其餘處理

雙擊快捷方式"Docker Quickstart Terminal"啓動該軟件. docker

使用以下命令設置代理:windows

docker-machine ssh defaultcentos

sudo -i服務器

cat /var/lib/boot2docker/profile | tail -n 1ssh

export HTTP_PROXY=http://ip:portcurl

exitide

exitui

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

相關文章
相關標籤/搜索