上landing.example.com:10000有我一个web服务器工作正常,这是一个码头工人的容器暴露的端口10000。它的 IP 是172.17.0.2.
我想要的是在 port 上有一个 nginx 反向代理80,并根据访问者访问的 URL 将访问者发送到不同的 Docker 容器。
server {
listen 80;
server_name landing.example.com;
location / {
proxy_pass http://172.17.0.2:10000/;
}
access_log /landing-access.log;
error_log /landing-error.log info;
}
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我得到502 Bad Gateway并且日志说
2016/04/14 16:58:16 [error] 413#413: *84 connect()
failed (111: Connection refused) while connecting to upstream, client:
xxx.xxx.xxx.xxx, server: landing.example.com, request: "GET / HTTP/1.1",
upstream: "http://172.17.0.2:10000/", host: "landing.example.com"
Run Code Online (Sandbox Code Playgroud) TL; DR:不应以root用户身份运行GUI应用程序,请设置常规用户这样做。
我正在尝试从Docker内部运行arduino IDE(下载,而不是软件包)。我编写了Dockerfile如下:
FROM ubuntu:14.04
MAINTAINER Mael Auzias <docker@mael.auzias.net>
ENV HOME /home/arduino
ENV USER arduino
RUN apt-get update && apt-get install -y \
libx11-6 libxext-dev libxrender-dev libxtst-dev \
--no-install-recommends \
&& useradd --create-home --home-dir $HOME $USER \
&& chown -R $USER:$USER $HOME
ADD arduino-1.6.6-linux64.tar.xz $HOME
WORKDIR $HOME/arduino-1.6.6
USER $USER
ENTRYPOINT ["/bin/bash"]
Run Code Online (Sandbox Code Playgroud)
我花了一些时间来了解Jessica Frazelle通常如何启动她的图形容器来正确地使用以下命令启动我的图形容器:
$docker run --name arduino --rm -it -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix 25af73b6cb3c ./arduino
No protocol specified
Picked up JAVA_TOOL_OPTIONS:
No protocol …Run Code Online (Sandbox Code Playgroud) 我处于一个奇怪的位置,apt-get update尽管可以在Docker容器中正常工作,但可以连接到Internet。
我不确定我是否将代理放置在错误的位置,或者我缺少其他东西。
对于apt-get,我将以下内容添加到中,/etc/apt/apt.conf并且可以正常工作。
Acquire::http::proxy "http://user:pass@172.18.*.*:80/";
Acquire::ftp::proxy "ftp://user:pass@172.18.*.*:80/";
Acquire::https::proxy "https://user:pass@172.18.*.*:80/";
Run Code Online (Sandbox Code Playgroud)
尽管由于也以正确的(我认为)模式/格式放置凭据,所以/etc/profile我无法获得诸如curl或的命令ping。
我可能会缺少一些东西吗?