CentOS8环境下安装docker并赋予非root用户执行docker命令的权限
suhang
2023年08月30日
安装docker
sudo yum install -y yum-utils  device-mapper-persistent-data  lvm2
sudo yum-config-manager  --add-repo   https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install containerd.io
sudo yum install docker-ce docker-ce-cli
开机自动启动docker
sudo systemctl enable docker
启动docker
sudo systemctl start docker

此时docker可正常启动, 但是目前所有docker命令需要都需要root权限,百度给的解释如下

默认情况下, docker 命令会使用 Unix socket 与 Docker 引擎通讯。 而只有 root 用户和docker 组的用户才可以访问 Docker 引擎的Unix socket。

docker 组内用户执行命令的时候会自动在所有命令前添加 sudo。因为设计或者其他的原因,Docker 给予所有 docker 组的用户相当大的权力(虽然权力只体现在能访问 /var/run/docker.sock 上面)。

默认情况下,Docker 软件包是会默认添加一个 docker 用户组的。Docker 守护进程会允许 root 用户和 docker组用户访问 Docker。

出于安全考虑,一般 Linux 系统上不会直接使用 root 用户。 因此,更好地做法是将需要使用 docker 的用户加入 docker用户组。

创建名为docker的组,如果之前已经有该组就会报错,可以忽略这个错误
sudo groupadd docker
将当前用户加入组docker
sudo gpasswd -a ${USER} docker
重启docker服务(生产环境请慎用)
sudo systemctl restart docker
添加访问和执行权限
sudo chmod a+rw /var/run/docker.sock

好了,搞定收工,可以不带sudo使用docker了