以非root用户身份运行docker或以root用户身份在tomcat上运行jenkins

席德

我正在尝试使用docker-maven插件构建docker映像,并计划使用jenkins执行mvn命令。我将jenkins.war部署在tomcat实例上,而不是作为非root用户运行的独立应用程序。问题是docker需要以root用户身份运行,因此maven命令需要以root用户身份运行,因此jenkins / tomcat需要以root用户身份运行,这不是一个好习惯(尽管我的非root用户身份是也很sudoer,所以我想没有多大关系)。

因此,最重要的是,我看到了两种解决方案:以非root用户身份运行docker(并且需要有关如何执行此操作的帮助)或者需要以root用户身份运行jenkins(并且不确定如何更改环境变量/ config和仍然没有切换到root)。

关于选择哪种解决方案以及如何实施的任何建议?

问题是docker需要以root用户身份运行,因此maven命令需要以root用户身份运行,

不可以,可以使用-u--user)参数完成docker运行,以便在容器内使用非root用户。

以非root用户身份运行docker

您的用户(在主机上)需要成为docker组的一部分然后,您可以与该用户一起运行docker服务。

如所评论,这不是很安全。
看到:

最后一个链接以以下发现结尾:

  • 如果有一个已知的uid,容器内的进程正在执行,则可能很简单,例如限制对主机系统的访问,以使来自容器的uid具有有限的访问权限。
  • 更好的解决方案是使用来启动具有已知uid的容器--user(您也可以使用用户名,但请记住,这只是从主机名用户名系统中提供uid的一种更友好的方式),然后限制对主机上uid的访问您已经确定容器将以运行
  • 由于uid和用户名(以及gid和组名)是如何从容器映射到主机的,因此指定运行容器化进程的用户可以使该进程看起来由容器内部与外部的不同用户拥有。

关于最后一点,您现在具有用户名称空间(userns)重新映射(自docker 1.10起,但我建议使用17.06,因为问题33844)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

以非root用户身份运行docker作为root用户

以root用户身份运行docker映像,以非root用户身份运行服务

以非root用户身份运行monit

以非root用户身份运行openvpn

以非root用户身份运行openvpn

如何以非root用户身份运行docker image?

以非 root 用户身份构建和运行 Docker 映像

以非root用户身份在Docker内部运行应用程序

以非 root 用户身份运行 docker 容器进程

如何在官方docker php映像上以非root用户身份运行composer

如何在 Fargate 上的 Amazon ECS 中以非 root 用户身份运行 docker 容器

如何以非root用户身份运行root别名?

当Apache以非root用户身份运行时,以root用户身份运行cronjobs

允许用户以root用户身份运行命令

以root用户身份在jenkins中运行shell命令吗?

以OTRS用户身份运行此脚本!或以root用户身份使用“ Cron.sh {start | stop | restart} OTRS_USER”

如何从 Chef 食谱中以非 root 用户身份运行 `gpg`?

如何使此deploy / init以非root用户身份运行?

以非 root 用户身份在 Gitlab CI 中运行 Elasticsearch

以非root用户身份运行rm -rf / *后的分类帮助

以非 root 用户身份运行 Hyperledger-Fabric 容器

如何以非root用户身份启动运行级别3?

如何以非root用户身份在Linux上的Docker中运行.NET Core 2应用程序

Composer 在 docker 中以 root 身份运行,即使指定了用户

VirtualBox以root身份运行,严重错误以用户身份运行

在Android上始终以root用户身份在后台运行服务

可疑pgrep在Debian Bullseye上以root用户身份运行

Intellij以Linux上的root用户身份运行配置

以root以外的系统用户身份在CentOS上运行服务