我有一系列用于 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_PROTO
。https
因此,目前我要做的是停止容器,删除容器,然后run
再次运行上述命令。这感觉不对,而且对于一系列工具和配置选项来说,这确实是不可持续的。
我的问题很笼统,但我想知道如何以可管理的方式管理这些容器和配置。我尝试创建 systemd 单元,这稍微好一点,但我仍然觉得我缺少一些更明显的东西。
理想情况下,我不希望使用这些工具的任何人都必须记住配置,我希望它能够保留在某个地方。
答案1
由于你的问题很广泛,我只能建议你先看看 Docker Compose,这真的是必备的(也就是用文字描述容器),并为它们打开 git 版本控制的大门(因此也是 CI / CD)
还可以看看 Portainer 来减轻您的负担,因为这是一个非常流行的工具,它有一个 GUI 来操作您的容器、卷和图像。
问候,