代码之家  ›  专栏  ›  技术社区  ›  Yuseferi

更改Docker容器变量

  •  0
  • Yuseferi  · 技术社区  · 6 年前

    我有一个容器,它从我的Mac系统继承了一些不需要的环境变量,

    因为我在伊朗和码头枢纽是禁止伊朗人拉图片,我们必须设置代理拉图片。在我提取图像并禁用代理之后,我试图构建一个容器,

    我的 停靠文件 是:

    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"
    

    容器创建正确,但当我想 curl 127.0.0.1:6800 在ms01容器中面临一种代理错误

    Connection Refused .... Generated by <i>COW 0.9.8</i> <br /> Host <i>prometheu

    经过调查,我试着用 docker inspect 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 回复  |  直到 6 年前
        1
  •  1
  •   BMitch    6 年前

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

    创建或启动新容器时,[http proxy]环境变量将在容器中自动设置。

    https://docs.docker.com/network/proxy/ 如何在docker引擎上配置代理。

        2
  •  1
  •   matt9    6 年前

    这些数据在哪里以及为什么被继承?

    它们继承自你的基本形象 python:3.6 . 见 Dockerfile

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

    目前你不能。有关详细信息,请参见 this GitHub issue ,自2014年以来未解决