如何让 Docker 使用代理服务器 (proxy) 构建 (build) Docker Image

有很多公司设置了防火墙,要上互联网必须通过代理服务器。我有一个 dockerfile 需要使用 pip 安装 依赖的 python 模块,结果出现错误。我的 dockerfile 如下:

FROM python:3

WORKDIR /app

COPY py-solution/requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

COPY py-solution/. .

CMD [ "python", "./service.py" ]

每次构建 (build) 都能看到 pip 说找不到模块。

sudo docker build -t coin-trade .

pip 找不到模块
原因就是容器内访问不了互联网,使用下面的命令加上 proxy 以后问题解决了:


                
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Docker 使用 Nginx 反向代理的步骤如下: 1. 首先,你需要创建一个 Dockerfile 文件来定义你的 Nginx 容器。在 Dockerfile 中,你可以指定基础镜像、安装 Nginx,以及配置反向代理。 以下是一个简单的示例 Dockerfile: ```Dockerfile FROM nginx # 删除默认的 Nginx 配置文件 RUN rm /etc/nginx/conf.d/default.conf # 添加你的自定义 Nginx 配置文件 COPY nginx.conf /etc/nginx/conf.d/ # 暴露 Nginx 监听的端口号 EXPOSE 80 ``` 2. 创建一个名为 `nginx.conf` 的文件,用来配置 Nginx 的反向代理规则。根据你的需求,你可以根据自己的实际情况进行配置,下面是一个简单的示例: ```nginx server { listen 80; server_name your_domain.com; location / { proxy_pass http://your_upstream_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 将 `your_domain.com` 替换为你要将流量转发到的域名,将 `your_upstream_server` 替换为将接收到的请求转发到的上游服务器地址。 3. 构建 Docker 镜像。在终端中导航到 Dockerfile 所在的目录,并运行以下命令构建镜像: ```bash docker build -t your_image_name . ``` 将 `your_image_name` 替换为你想要的镜像名称。 4. 运行 Docker 容器。使用以下命令运行刚刚构建的镜像: ```bash docker run -d -p 80:80 your_image_name ``` 这将在后台运行一个新的容器,并将主机的 80 端口映射到容器的 80 端口。 现在,你的 Nginx 反向代理容器已经启动并运行。你可以通过访问主机的 IP 地址或域名来验证反向代理是否正常工作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

surfirst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值