更改Docker Container Variabels

时间:2018-08-01 08:25:22

标签: docker docker-compose

我有一个容器,该容器从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代理。

2 个答案:

答案 0 :(得分:1)

容器将从docker引擎获取代理设置:

  

创建或启动新容器时,会在容器内自动设置[http代理]环境变量。

有关如何在docker引擎上配置代理的信息,请参见https://docs.docker.com/network/proxy/

答案 1 :(得分:1)

  

在何处以及为何继承这些数据?

它们是从您的基本映像python:3.6继承的。参见Dockerfile

  

如何在不重建映像和容器的情况下删除此环境变量?

当前您不能。有关更多信息,请参阅this GitHub issue,自2014年以来未解决