在GitLab的CI中构建Docker映像的安全方法是哪种?

时间:2019-03-01 15:33:26

标签: docker continuous-integration gitlab

我创建了一个Docker运行器,该运行器将Docker套接字/var/run/docker.sock绑定到容器中,如1中所述:

sudo gitlab-runner register -n \
   --url https://gitlab.com/ \
   --registration-token REGISTRATION_TOKEN \
   --executor docker \
   --description "My Docker Runner" \
   --docker-image "docker:stable" \
   --docker-volumes /var/run/docker.sock:/var/run/docker.sock

我已阅读了几篇文章/文章,这些文章/文章建议避免Docker-in-Docker部署,而建议使用Docker套接字绑定。

然而,这种方法的问题在于,能够在.gitlab-ci.yml 中添加Docker命令的任何开发人员都可以访问/停止/删除任何容器在主机上运行。例如,添加docker rm -f $(docker ps -a -q)将删除所有现有容器。

如何避免这种情况?

1 个答案:

答案 0 :(得分:0)

创建多个运行程序(是否为shell,docker中的docker,docker套接字)。 然后,仅允许特定的组/项目使用特定的运行器。这是确保跑步者最安全的方法。