组织具有大型配置的多个 Docker 容器

组织具有大型配置的多个 Docker 容器

我有一系列用于 CI/CD、错误跟踪、日志记录、数据收集等的工具,它们都以 Docker 镜像的形式提供。这些都是独立的,不属于任何项目存储库或任何东西,只是部署在工具服务器上的通用工具。

我对 Docker 还很陌生,所以如果这个问题早该出现,我很抱歉,但我会解释我正在尝试纠正的情况。

容器内的工具:

  • 菲德
  • 哨兵
  • 无人机
  • 普罗米修斯

让我们使用无人机例如,为了启动我的无人机容器,我将在命令行使用以下命令:

docker run \
        --volume=/var/lib/drone:/data \
        -e DRONE_GITHUB_CLIENT_ID=xxxxxxxxxxxxxxxxxxxxxxxxxx \
        -e DRONE_GITHUB_CLIENT_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
        -e DRONE_RPC_SECRET=xxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
        -e DRONE_SERVER_HOST=drone.xxxxxxxx.com \
        -e DRONE_REPOSITORY_FILTER=xxxxxxxxxx, \
        -e DRONE_SERVER_PROTO=http \
        -e DRONE_USER_CREATE="username:codespent,admin:true" \
        -p 8884:80 -p 4431:443 \
        --restart=always --detach=true \
        --name drone drone/drone:1

这将使用我指定的配置启动无人机容器,但假设我需要替换容器以添加一些配置,例如我们将更改为DRONE_SERVER_PROTOhttps因此,目前我要做的是停止容器,删除容器,然后run再次运行上述命令。这感觉不对,而且对于一系列工具和配置选项来说,这确实是不可持续的。

我的问题很笼统,但我想知道如何以可管理的方式管理这些容器和配置。我尝试创建 systemd 单元,这稍微好一点,但我仍然觉得我缺少一些更明显的东西。

理想情况下,我不希望使用这些工具的任何人都必须记住配置,我希望它能够保留在某个地方。

答案1

由于你的问题很广泛,我只能建议你先看看 Docker Compose,这真的是必备的(也就是用文字描述容器),并为它们打开 git 版本控制的大门(因此也是 CI / CD)

还可以看看 Portainer 来减轻您的负担,因为这是一个非常流行的工具,它有一个 GUI 来操作您的容器、卷和图像。

问候,

相关内容