Docker与本地网络连接配置

本文介绍了如何在Docker中配置本地网络连接,包括在.bashrc中设置代理、在Dockerfile中修改环境变量、通过build命令传递代理参数以及通过配置文件设置。此外,还提供了Docker容器访问宿主网络的方法,包括修改Docker服务配置和验证配置成功的方式。
摘要由CSDN通过智能技术生成

Docker与本地网络连接配置

使用下面命令可以进行本地网络连接配置:

# 将这两句添加到.bashrc中可以在开启终端时默认挂载
export http_proxy=http://127.0.0.1:8123
export https_proxy=http://127.0.0.1:8123

# 测试连通性
curl https://www.google.com

# 取消挂载
unset http_proxy
unset https_proxy
Docker由于其架构的性质,不能直接从容器内及在Dockerfile Build的时候进行proxy访问,以下提供多种方式来进行proxy的配置,其中${HOST MACHINE CURRENT IP} 表示宿主机的物理联网IP。
#方式一 直接在Dockerfile中修改  (不推荐此方式,因为可能影响容器后续启动与移植)
#其中大小写的http_proxy分别对应了不同程序的proxy请求,例如curl请求大写,wget请求小写
ENV https_proxy=http://${HOST MACHINE CURRENT IP}:8123
ENV http_proxy=http://${HOST MACHINE CURRENT IP}:8123
ENV HTTP_PROXY=http://${HOST MACHINE CURRENT IP}:8123
ENV HTTPS_PROXY=http://${HOST MACHINE CURRENT IP}:8123
ENV no_proxy="localhost,localdomain,127.0.0.1,etc"
ENV NO_PROXY="localhost,localdomain,127.0.0.1,etc"

# 在最后加上unset 与清空环境变量
ENV https_proxy ""
ENV http_proxy ""
ENV HTTP_PROXY ""
ENV HTTPS_PROXY ""
ENV no_proxy ""
ENV NO_PROXY ""

RUN unset http_proxy && unset https_proxy
#方式二 在build命令后添加临时变量
docker build  (Other Command)  \
	--network host \ //设置编译时网络模式为host宿主共享模式
	--build-arg https_proxy=http://${HOST MACHINE CURRENT IP}:8123 \
  --build-arg http_proxy=http://${HOST MACHINE CURRENT IP}:8123 \
  --build-arg HTTP_PROXY=http://${HOST MACHINE CURRENT IP}:8123 \
  --build-arg HTTPS_PROXY=http://${HOST MACHINE CURRENT IP}:8123 \
  --build-arg NO_PROXY="localhost,localdomain,127.0.0.1,etc" \
  --build-arg no_proxy="localhost,localdomain,127.0.0.1,etc"
#方式三 Docker中引入了新的方式,在配置文件中添加需要的proxy即可

mkdir ~/.docker
cd ~/.docker

sudo vim config.json

#在config.json中添加参数

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://${HOST MACHINE CURRENT IP}:8123",
     "httpsProxy": "http://${HOST MACHINE CURRENT IP}:8123",
     "ftpProxy": "http://${HOST MACHINE CURRENT IP}:8123",
     "noProxy": "localhost,localdomain,127.0.0.1,etc"
   }
 }
}

#使用方式一 在build后作为参数添加config.json
--config string "~/.docker"

#使用方式二 将DOCKER_CONFIG作为环境变量添加到其中
export DOCKER_CONFIG=~/.docker
下面是Docker容器内访问宿主网络的方法:
#修改Docker配置
sudo mkdir /etc/systemd/system/docker.service.d
sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf
sudo vim /etc/systemd/system/docker.service.d/https-proxy.conf

#http-proxy.conf内容
[Service]
Environment="HTTP_PROXY=http://${HOST MACHINE CURRENT IP}:8123/" "NO_PROXY=localhost,127.0.0.1"

#http-proxy.conf内容
[Service]
Environment="HTTPS_PROXY=http://${HOST MACHINE CURRENT IP}:8123/" "NO_PROXY=localhost,127.0.0.1"

#修改完成后重启Docker服务
systemctl daemon-reload
systemctl restart docker

#查看Docker是否配置成功
docker info
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值