Docker中配置 HTTP代理

虚拟化
2025-03-11 06:10:04
分享


要在 Docker中配置 HTTP代理,你可以按照以下步骤进行操作:

1.为 Docker守护进程设置 HTTP代理Docker守护进程(daemon)需要通过代理访问外部网络时,可以通过修改 Docker的配置文件来设置代理。


####步骤:


1.创建或编辑 Docker的服务配置文件:
-对于 systemd系统(如 Ubuntu、CentOS等),编辑 /etc/systemd/system/docker.service.d/proxy.conf文件。
-如果目录不存在,可以手动创建。


2.在文件中添加以下内容:

Environment="HTTP_PROXY=http://proxy.example.com:port"Environment="HTTPS_PROXY=http://proxy.example.com:port"Environment="NO_PROXY=localhost,127.0.0.1,.example.com"

-将 proxy.example.com:port替换为你的代理服务器地址和端口。

  • NO_PROXY用于指定不需要通过代理访问的地址。


3.保存文件并退出编辑器。


4.重新加载 systemd配置并重启 Docker服务

sudo systemctl daemon-reload 
sudo systemctl restart docker

5.验证代理是否生效:

systemctl show --property=Environment docker

如果配置正确,你会看到设置的代理环境变量。

2.为 Docker容器设置 HTTP代理如果你希望单个容器使用代理,可以在运行容器时通过环境变量配置。

####步骤:
1.运行容器时添加环境变量

docker run --rm 
-e HTTP_PROXY=http://proxy.example.com:port \
-e HTTPS_PROXY=http://proxy.example.com:port \
-e NO_PROXY=localhost,127.0.0.1,.example.com \
your_image


2.验证容器内的网络请求是否通过代理。


---

###3.为 Docker Build设置 HTTP代理在构建 Docker镜像时,如果需要通过代理访问外部资源,可以在 `Dockerfile`中或构建命令中设置代理。

####方法1:在 `Dockerfile`中设置在 `Dockerfile`中添加以下内容:
```dockerfileENV HTTP_PROXY http://proxy.example.com:portENV HTTPS_PROXY http://proxy.example.com:portENV NO_PROXY localhost,127.0.0.1,.example.com```

####方法2:在构建命令中设置在运行 `docker build`时添加环境变量:
```bashdocker build --build-arg HTTP_PROXY=http://proxy.example.com:port \
--build-arg HTTPS_PROXY=http://proxy.example.com:port \
--build-arg NO_PROXY=localhost,127.0.0.1,.example.com \
-t your_image .



###注意事项-如果代理需要认证,可以在代理地址中包含用户名和密码,例如:http://username:password@proxy.example.com:port
-确保代理服务器的地址和端口正确,并且网络可达。-如果代理配置错误,可能会导致 Docker无法正常访问外部资源。

通过以上步骤,你可以成功为 Docker配置 HTTP代理!






 

在Docker中配置HTTP代理,需修改Docker守护进程配置文件,添加HTTP_PROXY、HTTPS_PROXY和NO_PROXY环境变量,并重启Docker服务。单个容器可通过运行命令时添加环境变量设置代理。构建镜像时,可在Dockerfile或构建命令中设置代理。注意代理地址和端口的正确性,确保网络可达。


The End
免责声明:本文系转载,版权归原作者所有;旨在传递信息,不代表本站观点和立场。
最新文章
    FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)
    
    The following has evaluated to null or missing:
    ==> mrcms_957b2b666da74aafa5da6612a8ebdbce  [in template "article.html" at line 254, column 64]
    
    ----
    Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
    ----
    
    ----
    FTL stack trace ("~" means nesting-related):
    	- Failed at: #list mrcms_957b2b666da74aafa5da6612a...  [in template "article.html" at line 254, column 57]
    ----
    
    Java stack trace (for programmers):
    ----
    freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
    	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
    	at freemarker.core.Expression.assertNonNull(Expression.java:233)
    	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:103)
    	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:93)
    	at freemarker.core.Environment.visit(Environment.java:330)
    	at freemarker.core.Environment.visit(Environment.java:336)
    	at freemarker.core.Environment.process(Environment.java:309)
    	at freemarker.template.Template.process(Template.java:384)
    	at org.marker.mushroom.template.SendDataToView.process(SendDataToView.java:144)
    	at org.marker.mushroom.core.WebAPP.start(WebAPP.java:187)
    	at org.marker.mushroom.servlet.DispatcherServlet.progress(DispatcherServlet.java:48)
    	at org.marker.mushroom.servlet.DispatcherServlet.doGet(DispatcherServlet.java:75)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:489)
    	at javax.servlet.http.HttpServlet.service(HttpServlet.java:583)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:212)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:662)
    	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:428)
    	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:360)
    	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:297)
    	at org.marker.mushroom.filter.SystemCoreFilter.doFilter(SystemCoreFilter.java:222)
    	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:181)
    	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:156)
    	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:168)
    	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90)
    	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:483)
    	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:130)
    	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93)
    	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:679)
    	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
    	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:346)
    	at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:617)
    	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63)
    	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:934)
    	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1690)
    	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
    	at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
    	at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
    	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:63)
    	at java.base/java.lang.Thread.run(Thread.java:840)