修改已安装的 docker 容器

修改已安装的 docker 容器

我正在使用 Synology KMU NAS。在该 NAS 上,我安装了 GitLab Docker 容器,但该容器似乎存在错误。该错误导致软件拒绝发送未经身份验证的管理电子邮件。有一个环境变量 SMTP_AUTHENTICATION 传递给 GitLab,但似乎未经过身份验证的配置(根据维护者的说法,omnibus-gitlab 支持该配置)未正确传递,而是返回到“登录”。

由于我们的中央 IT 服务仅提供未经身份验证的 SMTP 服务器(至少对于非个人用途而言),我需要处理该问题直到 Synology(可能)将来修复该问题。

我的想法是修改 Docker 容器,以便它将正确的选项传递给 GitLab。我猜这个错误很简单。但是我以前从未使用过 Docker 容器。

有没有办法修改docker容器?我需要做什么?

答案1

您可以创建自己的容器,该容器取决于要修改的容器。我曾经对 mariadb 容器这样做过,该容器无法启动 galera 集群,因为测试所需的二进制文件位于容器中的错误位置。

要创建自己的容器,只需几个步骤。我在想要启动容器的主机上运行了此操作,不确定这是否适用于你的 NAS:

  1. 创建一个空目录并进入该目录
  2. Dockerfile在该目录内创建一个名为

    FROM kolla/ubuntu-binary-mariadb:queens
    COPY resolveip /usr/sbin/resolveip
    CMD ["dumb-init", "--single-child", "--", "kolla_start"]
    

    FROM:您想要继承的图像;COPY您想要复制到图像中的修改过的文件;CMD原始图像的启动命令。您可以使用 轻松找到它docker inspect CONTAINER。)
    要将文件复制出容器进行修改,您可以使用:$ docker cp CONTAINER:/path/to/file .

  3. 构建容器:

    docker build --tag=kolla/ubuntu-binary-mariadb:queens .
    

我需要保留原始名称和标签,因为该图像与其他图像一起配置。由于新创建的映像在本地可用,并且比 docker 存储库中的映像更新,因此在部署期间会自动使用它。如果您不需要这个,您可以给它起一个自己的名字,然后从该图像启动一个容器。

相关内容