非root用户使用docker

近来工作涉及到docker,把近来使用docker过程中遇到的问题记录一下吧。

本文转自:http://blog.youkuaiyun.com/kongxx/article/details/52413332



通常我们使用Docker的时候都是使用的root,官方说法如下:
The docker daemon binds to a Unix socket instead of a TCP port. By default that Unix socket is owned by the user root and other users can access it with sudo. For this reason, docker daemon always runs as the root user. 
 To avoid having to use sudo when you use the docker command, create a Unix group called docker and add users to it. When the docker daemon starts, it makes the ownership of the Unix socket read/writable by the docker group.

下面是使用非root用户操作的步骤

创建docker组
sudo groupadd docker

将当前用户加入docker组
sudo gpasswd -a ${USER} docker

重新启动docker服务(下面是CentOS7的命令)
sudo systemctl restart docker

当前用户退出系统重新登陆
运行docker命令

docker ps
<think>好的,我现在需要帮助用户解决在root用户下安装和配置Docker的问题。首先,我得回忆一下用户提到的引用内容,看看有哪些相关信息可以利用。 根据引用[1],用户提到root权限下运行Docker需要将用户加入Docker组,这样用户就可以通过Unix socket与Docker引擎通讯,而无需root权限。同时,引用[2]讨论了Docker服务端是否需要root,提到了Rootless模式和Podman作为替代方案。引用[3]则提供了Ubuntu 20.04下安装Docker的命令,使用sudo apt安装相关包。 用户的需求很明确:root用户安装和配置Docker。我需要结合这些引用,整理出一个步骤清晰的教程。首先,安装Docker可能需要root权限,但之后可以通过用户组配置让普通用户使用。另外,Rootless模式也是一个选项,但用户可能更倾向于传统的Docker安装方式,毕竟更常见。 接下来,我需要分步骤来写。第一步是安装Docker,这里需要sudo权限,用户可能需要临时使用root或者让管理员安装。第二步是配置用户组,将当前用户加入docker组,这样之后就可以不用sudo运行Docker命令了。第三步是验证安装,运行hello-world镜像测试。另外,还可以补充Rootless Docker的安装方法,作为另一种选项,但需要指出其限制,比如低端口无法绑定。 需要注意的是,用户组的方法虽然方便,但引用[2]提到这仍然有安全隐患,因为加入docker组的用户实际上拥有很高的权限。所以,在教程中应该加入安全建议,比如遵循最小权限原则,或者考虑使用Rootless模式或Podman。 另外,可能用户的环境不是Ubuntu,但引用[3]给出的是Ubuntu的安装命令,所以可能需要说明不同系统的安装步骤可能不同,但用户组配置是通用的。或者假设用户使用的是Ubuntu,因为引用中的例子是Ubuntu 20.04。 最后,生成相关问题的时候,要围绕root用户使用Docker的安全问题、替代方案、常见错误等,这样用户如果有进一步的问题,可以自行参考。</think>### Root用户安装配置Docker教程 #### 一、安装Docker(需临时Root权限) 1. **安装依赖包**(以Ubuntu为例) ```bash sudo apt update sudo apt install -y ca-certificates curl gnupg ``` 2. **添加Docker官方GPG密钥** ```bash sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg ``` 3. **设置软件仓库** ```bash echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null ``` 4. **安装Docker引擎** ```bash sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io # 社区版及核心组件[^3] ``` --- #### 二、配置Root用户权限 1. **创建docker用户组** ```bash sudo groupadd docker # 若已存在则忽略 ``` 2. **将当前用户加入docker组** ```bash sudo usermod -aG docker $USER # 需重新登录生效[^1] ``` 3. **验证权限配置** ```bash docker run hello-world # 成功运行即表示配置完成 ``` --- #### 三、Rootless模式(无需Root权限安装) 1. **安装Rootless Docker依赖** ```bash curl -fsSL https://get.docker.com/rootless | sh ``` 2. **设置环境变量** ```bash echo 'export PATH=/home/$USER/bin:$PATH' >> ~/.bashrc echo 'export DOCKER_HOST=unix:///run/user/$UID/docker.sock' >> ~/.bashrc source ~/.bashrc ``` 3. **启动Docker服务** ```bash systemctl --user start docker # 用户级服务 ``` --- #### 四、安全建议 - **最小权限原则**:避免容器使用`--privileged`参数[^2] - **网络隔离**:使用`--network none`限制容器网络 - **替代方案**:考虑使用Podman(完全Root架构) ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值