我有一个容器,该容器从Mac系统继承了一些不需要的环境变量,
因为我在伊朗,并且Docker中心被禁止伊朗人提取图像,所以我们必须设置代理以提取图像。在拉取图像并禁用代理后,我尝试构建一个容器,
我的 Dockerfile 是:
FROM python:3.6
ENV PYTHONUNBUFFERED 1
RUN mkdir /config
ADD /config/requirements.txt /config/
RUN pip install -r /config/requirements.txt
RUN mkdir /src
WORKDIR /src
CMD nohup scrapyd &
和我的 docker-compose.yml 文件包含
version: '3'
services:
dj-service:
build: .
container_name: ms01
command: bash -c "./run_django.sh"
volumes:
- ./src:/src
expose:
- "8000"
ports:
- "6800:6800"
容器创建正确,但是当我想在ms01容器中curl 127.0.0.1:6800
遇到某种代理错误时
Connection Refused .... Generated by <i>COW 0.9.8</i> <br />
Host <i>prometheu
经过一番调查后,我试图用docker inspect ms01
检查ms01容器,并发现了一件奇怪的事情
"Env": [
"HTTP_PROXY=X.X.X.X:7777",
"http_proxy=X.X.X.X:7777",
"PATH=/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"LANG=C.UTF-8",
"GPG_KEY=0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D",
"PYTHON_VERSION=3.6.6",
"PYTHON_PIP_VERSION=10.0.1",
"PYTHONUNBUFFERED=1"
],
虽然我尚未在docker-compose或.env
文件中设置此环境变量,但我的问题是该数据在何处以及为什么被继承?以及如何在不重建映像和容器的情况下删除此环境变量?
我已经在主机上检查了printenv
的结果,但那里没有这样的配置。
通知:“ X.X.X.X:7777”是我设置为提取图像的Http代理。
答案 0 :(得分:1)
容器将从docker引擎获取代理设置:
创建或启动新容器时,会在容器内自动设置[http代理]环境变量。
有关如何在docker引擎上配置代理的信息,请参见https://docs.docker.com/network/proxy/。
答案 1 :(得分:1)
在何处以及为何继承这些数据?
它们是从您的基本映像python:3.6
继承的。参见Dockerfile
如何在不重建映像和容器的情况下删除此环境变量?
当前您不能。有关更多信息,请参阅this GitHub issue,自2014年以来未解决