我正在读书本文 http://container-solutions.com/running-docker-in-jenkins-in-docker/关于设置 Jenkins 在 Docker 容器内运行,以便 Jenkins 能够自行构建 Docker 镜像。尽管该解决方案有效,但正如作者指出的那样,存在一些安全问题。
主要的安全问题在于 Jenkins 需要运行 Docker 命令,这需要在 Jenkins 容器内挂载 Docker 套接字(另外 Jenkins 需要 sudo 才能运行 Docker 命令)。因此,任何有权访问 Jenkins Web 界面的人都可以运行任何具有主机系统完全访问权限的命令(通过运行 docker 容器)。
因此,我想知道是否有人有一些想法可以使此设置更加安全。对我来说,不在 Docker 容器内运行 Jenkins(而是直接在主机系统上)似乎并不更安全,因为 Jenkins 仍然需要能够执行 Docker 命令(使用 sudo)来构建新映像,从而使 Jenkins 用户仍然能够启动任何任意容器。使用防火墙是限制可以访问 Jenkins 的 IP 的选项,但我希望可能有其他一些解决方案来降低安全风险。
Edit我忘了提到 Jenkins 还应该能够在同一台机器上启动(新创建的)容器。
Docker 远程 API 公开了各种端点来处理图像,例如创建、列出、检查等,请参阅https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/images https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/images.
调用端点https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-an-image https://docs.docker.com/engine/reference/api/docker_remote_api_v1.24/#/create-an-image作为构建步骤可能有助于从 Dockerfile 构建镜像。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)