C.F*_*lix 7 proxy redmine docker-compose
由于旧的安装是手工完成的,因此我正在为Redmine安装设置新的服务器,这使得很难正确地更新所有内容。我决定使用Docker映像,但是由于错误消息而无法启动Docker容器。主机在代理服务器后面运行,我认为这是造成此问题的原因,因为其他所有功能(例如wget,curl等)都可以正常工作。
错误信息:
Pulling redmine (redmine:)...
ERROR: Get https://registry-1.docker.io/v2/: dial tcp 34.206.236.31:443: connect: connection refused
Run Code Online (Sandbox Code Playgroud)
我在Google上搜索了有关在后台将Docker / Docker-Compose与代理服务器一起使用的信息,并发现了一些人们遇到相同问题的网站,但这些网站都没有真正帮助我解决问题。
我检查了Docker文档并找到了指南,但这似乎对我不起作用:https : //docs.docker.com/network/proxy/
我还在StackOverflow上找到了一个已回答的问题:在服务器上的docker-compose上使用代理,这可能是我想要的解决方案,但是我不确定我必须将解决方案放在哪里。我猜这个人的意思是docker-compose.yml文件,但我可能错了。
这是我的docker-compose.yml的样子:
version: '3.1'
services:
redmine:
image: redmine
restart: always
ports:
- 80:3000
environment:
REDMINE_DB_MYSQL: db
REDMINE_DB_PASSWORD: SECRET_PASSWORD
db:
image: mysql:5.7
restart: always
environment:
MYSQL_ROOT_PASSWORD: SECRET_PASSWORD
MYSQL_DATABASE: redmine
Run Code Online (Sandbox Code Playgroud)
我希望运行以下命令而不会出现以上错误消息
docker-compose -f docker-compose.yml up -d
Run Code Online (Sandbox Code Playgroud)
C.F*_*lix 15
我做了一些研究,似乎使用了更好的关键词,因为我现在找到了解决方案。我想与所有人共享该解决方案,以防其他人可能需要它。
mkdir /etc/systemd/system/docker.service.d
/etc/systemd/system/docker.service.d/http-proxy.conf并将以下内容放入新创建的文件中[Service]
# NO_PROXY is optional and can be removed if not needed
# Change proxy_url to your proxy IP or FQDN and proxy_port to your proxy port
# For Proxy server which require username and password authentication, just add the proper username and password to the URL. (see example below)
# Example without authentication
Environment="HTTP_PROXY=http://proxy_url:proxy_port" "NO_PROXY=localhost,127.0.0.0/8"
# Example with authentication
Environment="HTTP_PROXY=http://username:password@proxy_url:proxy_port" "NO_PROXY=localhost,127.0.0.0/8"
Run Code Online (Sandbox Code Playgroud)
重新加载systemctl,以便读取新设置
sudo systemctl daemon-reload
验证是否正确设置了docker服务环境
sudo systemctl show docker --property Environment
重新启动docker服务,使其使用更新的环境设置
sudo systemctl restart docker
现在,您可以docker-compose在计算机上执行命令,而不会收到任何connection refused错误消息。
小智 9
对于这需要用户名和密码进行身份验证的代理服务器:除了添加凭据/etc/systemd/system/docker.service.d/http-proxy.conf,如建议这个答案,我也有过相同的添加到Dockerfile。以下是来自 Dockerfile 的片段。
FROM ubuntu:16.04
ENV http_proxy http://username:password@proxy_url:proxy_port
ENV https_proxy http://username:password@proxy_url:proxy_port
RUN apt-get update \
&& apt-get upgrade -y \
&& apt-get install -y \
build-essential \
bla bla bla ...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10679 次 |
| 最近记录: |