2016-05-14 49 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