2016-05-14 42 views
1

在Ubuntu-14.04主機上運行docker-fiddler容器。 Container彈出提琴手並將GUI重定向到主機,但代理失敗。 Docker ver 1.11.1,Firefox代理到Docker Fiddler拒絕連接

根據下面顯示的設置,Firefox顯示「連接已重置」或「代理服務器拒絕連接」。

問:

  1. 什麼是正確的Firefox的代理設置,HTTP和SSL?
  2. 碼頭運行cmd行需要做什麼修改?
  3. 需要對Dockerfile進行哪些更改?

注:我打的HTTP URL,沒有使用https

此配置,本地主機,假設端口FWD,FF輸出:連接被重置

Firefox proxy: 
manual proxy 
HTTP Proxy 127.0.0.1 Port 8888 
SSL Proxy 127.0.0.1 Port 8888 

此配置,使用容器ip,FF輸出:代理服務器拒絕連接

Firefox proxy: 
manual proxy 
HTTP Proxy 172.17.02 Port 8888 
SSL Proxy 172.17.02 Port 8888 

TL; DR

多克爾執行命令

docker run -d -p 8888:8888 -v /tmp/.X11-unix:/tmp/.X11-unix -e \ 
DISPLAY=$DISPLAY fiddler -h $HOSTNAME -v \ 
$HOME/.Xauthority:/home/$USER/.Xauthority 

搬運工PS:

16a4f7531222 fiddler "mono /app/Fiddler.ex" 3 hours ago Up 3 hours 0.0.0.0:8888->8888/tcp cranky_pare 

Dockerfilejwieringa/docker-fiddler,我添加暴露8888,和用戶配置,以支持綁定安裝X服務器

FROM debian:wheezy 
RUN apt-get update \ 
    && apt-get install -y curl unzip \ 
    && rm -rf /var/lib/apt/lists/* 
RUN apt-key adv --keyserver pgp.mit.edu --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 
RUN echo "deb http://download.mono-project.com/repo/debian wheezy/snapshots/3.12.0 main" > /etc/apt/sources.list.d/mono-xamarin.list \ 
    && apt-get update \ 
    && apt-get install -y mono-devel ca-certificates-mono fsharp mono-vbnc nuget \ 
    && rm -rf /var/lib/apt/lists/* 
RUN cd /tmp && curl -O http://ericlawrence.com/dl/MonoFiddler-v4484.zip 
RUN unzip /tmp/MonoFiddler-v4484.zip 
## I added this for X11 Display of Fiddler GUI on linux Host 
RUN groupadd -g <gid> <user> 
RUN useradd -d /home/<user> -s /bin/bash -m <user> -u <uid> -g <gid> 
USER <user> 
ENV HOME /home/<user> 
# I added this also 
EXPOSE 8888 
ENTRYPOINT ["mono", "/app/Fiddler.exe"] 

回答

0

1)主機被認爲是遠程計算機以泊塢窗-提琴手容器

Fiddler > Tools > Fiddler Options > Connections > [x] Allow remote computers to connect 

2)的Fiddler需要一個復位改變這個屬性之後,這個封閉容器。必須添加綁定貼裝體積Dockerfile保持配置

-v /tmp/docker-fiddler/.mono:/home/$USER/.mono 

3)主機上創建/tmp/docker-fiddler/.mono第一,並給它$ USER權限。碼頭工人應該這樣做,但對我來說,我不知道如何

4)變更泊塢窗運行到:

docker run -d -p 8888:8888 \ 
    -v /tmp/.X11-unix:/tmp/.X11-unix \ 
    -h $HOSTNAME \ 
    -v $HOME/.Xauthority:/home/$USER/.Xauthority \ 
    -v /tmp/docker-fiddler/.mono:/home/$USER/.mono \ 
    -e DISPLAY=$DISPLAY fiddler 

5)對於調試,修改上面的第一個行添加調試(-D)和刪除守護進程(-d),這樣做是關鍵是找到失蹤的庫

docker -D run -p 8888:8888 

6)有幾個庫失蹤,上一次是gsettings桌面型模式包含/帶來的侏儒代理模式。這是由小提琴手使用,直到這已經到位了「AllowRemote」配置設置沒有被存儲

.mono/registry/CurrentUser/software/telerik/fiddler/values.xml:<value name="AllowRemote" 

7)一些變化Dockerfile,包括使用Ubuntu,創建了一個非常大的圖像,也許能反回libglib2.0斌libcanberra-GTK模塊:

FROM ubuntu:14.04 

RUN apt-get update \ 
    && apt-get install -y curl unzip libglib2.0-bin libcanberra-gtk-module gsettings-desktop-schemas \ 
    && rm -f /etc/apt/sources.list.d/mono-xamarin* \ 
    && rm -rf /var/lib/apt/lists/* 

RUN apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF 

RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" > /etc/apt/sources.list.d/mono-xamarin.list \ 
    && apt-get update \ 
    && apt-get install -y mono-complete ca-certificates-mono fsharp mono-vbnc nuget \ 
    && rm -rf /var/lib/apt/lists/* 

RUN cd /tmp && curl -O http://ericlawrence.com/dl/MonoFiddler-v4484.zip 

RUN unzip /tmp/MonoFiddler-v4484.zip 

RUN groupadd -g 1000 <USER> 
RUN useradd -d /home/<USER> -s /bin/bash \ 
-m <USER> -u <UID> -g <GID> 
USER <user> 
ENV HOME /home/<USER> 

EXPOSE 8888 

ENTRYPOINT ["mono", "/app/Fiddler.exe"] 

8)Firefox的代理, - 並沒有解決HTTPS/SSL

FF > edit > preferences > Advanced > settings 

manual proxy 
HTTP Proxy <container-ip> Port 8888 
SSL Proxy <left this blank> 

見:Install Mono on Linux

請參閱:Docker In Practice,Miell/Sayers - CH4 Tech 26運行GUI,X11