服务器有外网 docker没有外网怎么办
时间: 2023-11-10 11:56:43 浏览: 127
linux x86-64操作系统docker-1.19版本安装包,适用于服务器无法通外网,下载即可使用
如果你的宿主机可以访问外网,但是你的 Docker 容器没有外网访问权限,你可以通过以下步骤来为容器配置外网访问权限:
1. 创建一个 Docker 网络:
```
docker network create mynetwork
```
这个命令会创建一个名为 `mynetwork` 的 Docker 网络。
2. 启动一个代理容器:
```
docker run -d --name proxy --network mynetwork \
--publish 8080:8080 --env http_proxy=http://your-proxy-server:8080 \
--env https_proxy=https://your-proxy-server:8080 \
--env no_proxy=localhost,127.0.0.1,localaddress,.localdomain.com \
alpine/socat TCP4-LISTEN:8080,fork,reuseaddr PROXY:your-proxy-server:8080,proxyport=8080
```
这个命令会在 `mynetwork` 网络中启动一个名为 `proxy` 的容器,并将容器的 `8080` 端口映射到宿主机的 `8080` 端口。你需要将 `http_proxy` 和 `https_proxy` 环境变量设置为你的代理服务器的地址和端口。另外,你需要将 `no_proxy` 环境变量设置为你不希望通过代理访问的地址列表。
3. 启动你的应用容器:
```
docker run -it --network mynetwork --env http_proxy=http://proxy:8080 \
--env https_proxy=https://proxy:8080 myimage /bin/bash
```
这个命令会启动一个名为 `myimage` 的容器,并将容器连接到 `mynetwork` 网络。你需要将 `http_proxy` 和 `https_proxy` 环境变量设置为代理容器的名称和端口。
现在你可以在容器中使用外网访问了。需要注意的是,这种方法可能会影响容器中的网络性能,因为所有的网络流量都需要通过代理容器。
阅读全文