首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装码头后能添加码头组吗?

安装码头后能添加码头组吗?
EN

Stack Overflow用户
提问于 2019-11-03 14:34:15
回答 2查看 676关注 0票数 0

从下面的代码片段中摘自这里

代码语言:javascript
复制
# Create Docker Group with GID
# Set default value of 497 if DOCKER_GID set to blank string by Docker Compose
RUN groupadd -g ${DOCKER_GID:-497} docker

# Used to control Docker and Docker Compose versions installed
# NOTE: As of February 2016, AWS Linux ECS only supports Docker 1.9.1
ARG DOCKER_ENGINE=1.10.2
ARG DOCKER_COMPOSE=1.6.2

# ......

# Install Docker Engine
RUN apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D && \
    echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | tee /etc/apt/sources.list.d/docker.list && \
    apt-get update -y && \
    apt-get purge lxc-docker* -y && \
    apt-get install docker-engine=${DOCKER_ENGINE:-1.10.2}-0~trusty -y && \
    usermod -aG docker jenkins && \
    usermod -aG users jenkins

docker组是在安装停靠引擎之前显式创建的。

1)对接引擎安装不创建docker组吗?

2)安装了码头后,为什么不能运行groupadd

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-03 14:47:44

Docker包在安装时创建停靠组。同时,这是用默认值创建的(我没有花时间检查这个值,但我的两台ubuntu机器运行的gid为999)。

在上面的示例中,组是在安装默认gid为497的包之前创建的,该包可以定制(通过在docker环境中设置DOCKER_GID )。关于你的原始链接有一条评论说:

默认设置为497,这是AWS Linux ECS实例使用的组ID。

你在这里建造的是某种dind (码头码头)。目标是确保主机上的停靠器guid与dind实例中的guid相同,以便它们能够共享已挂载卷上的文件(例如,控制套接字一般直接在主机上启动其他坞容器.)。

如果不事先创建组,则无法在之后运行groupadd,因为该组已经存在。

您可以在现有的组上运行groupmod,但我不喜欢使用g\uids。在安装软件包之前,使用您的确切需求创建系统用户/组通常是最安全的方法。

票数 2
EN

Stack Overflow用户

发布于 2019-11-03 15:48:33

容器不具有与主机相同的用户和组。这是容器与其运行环境隔离的信息的一部分。

将用户和组从主机映射到容器的方法是使用相同的uid/gid 见解释在映像中创建它们。

在这个特定的映像中,我们希望jenkins用户(仅在码头映像上创建)成为docker组的一部分(在主机上)。这将允许jenkins任务(由jenkins用户运行)在没有sudo的情况下运行docker命令。码头医生的解释

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58681161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档