告别sudo烦恼!给你的Docker加个自己人用户组,效率翻倍不是梦

作者:佚名 时间:2025-12-07 06:27

字号

_20251204_125757.png

ScreenShot_2025-12-04_141350_297.png

我此处下载的是 x86_64/docker-28.4.0.tgz

准备安装文件

我们将下载后的文件放到我们的服务器上,在安装包同级目录下创建docker.service 文件,内容如下:

[Unit]
Description=Docker Application Container Engine
Documentation=https://docs.docker.com
After=network-online.target firewalld.service
Wants=network-online.target
[Service]
Type=notify
# the default is not to use systemd for cgroups because the delegate issues still
# exists and systemd currently does not support the cgroup feature set required
# for containers run by docker
ExecStart=/usr/bin/dockerd
ExecReload=/bin/kill -s HUP $MAINPID
# Having non-zero Limit*s causes performance problems due to accounting overhead
# in the kernel. We recommend using cgroups to do container-local accounting.
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
# Uncomment TasksMax if your systemd version supports it.
# Only systemd 226 and above support this version.
#TasksMax=infinity
TimeoutStartSec=0
# set delegate yes so that systemd does not reset the cgroups of docker containers
Delegate=yes
# kill only the docker process, not all processes in the cgroup
KillMode=process
# restart the docker process if it exits prematurely
Restart=on-failure
StartLimitBurst=3
StartLimitInterval=60s
[Install]
WantedBy=multi-user.target

此文件有些旧版本不兼容

在安装包同级目录下创建instll.sh 脚本文件,内容如下:

#!/bin/sh
echo '解压tar包......'
tar -xvf $1 --overwrite
echo '将docker目录移到/usr/bin目录下.....'
cp docker/* /usr/bin/
echo '将docker.service 移到/etc/systemd/system/ 目录.....'
cp docker.service /etc/systemd/system/
echo '添加文件权限.....'
chmod +x /etc/systemd/system/docker.service
echo '重新加载配置文件.....'
systemctl daemon-reload
echo '启动docker.....'
systemctl start docker
echo '设置开机自启.....'
systemctl enable docker.service
echo 'docker安装成功.....'
docker -v

在安装包同级目录下创建uninstall.sh 脚本文件,内容如下:

#!/bin/sh
echo '删除docker.service......'
rm -f /etc/systemd/system/docker.service
echo '删除docker文件......'
# 删除 docker
sudo rm -rf /usr/bin/docker*
# 删除 containerd
sudo rm -rf /usr/bin/containerd*
# 删除 docker 运行时 ID
sudo rm -rf /var/run/docker*
# 卸载 docker-compose
sudo rm -rf /usr/local/bin/docker-compose
sudo rm -rf /var/lib/docker*
sudo rm -rf /var/lib/containerd*
echo '重新加载配置文件'
systemctl daemon-reload
echo '卸载成功...'

创建完之后给脚本赋权限

chmod +x  install.sh uninstall.sh

安装

执行部署脚本install.sh,使用root权限执行

sudo ./install.sh  docker-28.4.0.tgz

出现如下信息则代表成功

_20251204_131322.png

如果不想用脚本安装的家人们可以挨条执行脚本中的命令进行安装

测试

我们可以从别的服务器上copy一个镜像tar文件过来,使用以下命令将镜像保存未tar文件

docker save -o nginx.tar nginx:1.21.5

执行完之后会有一个nginx.tar文件,将此文件拷贝到我们刚刚安装了docker的服务器上,使用以下命令加载镜像

sudo docker load -i nginx.tar

加载完之后我们就可以使用以下名称查看到镜像了

sudo docker images

使用以下命令启动容器服务

sudo docker run -p 80:80 nginx:1.21.5

启动之后我们就可以在浏览器中查看服务了。

到此,如果没有问题的话说明我们离线安装docker成功了

配置Docker用户组

Docker 利用 Linux 的用户和组权限来管理对 Docker 守护进程的访问权限。一般情况下,只有 root 用户和属于 docker 用户组的用户才被允许访问 Docker 守护进程。在 Linux 系统上使用 Docker 时,如果您尚未配置 docker 用户组,那么作为非 root 用户执行 Docker 相关命令将要求使用 sudo 来提升权限。

默认情况下,Docker 在安装过程中会创建一个名为 docker 的用户组,用于管理 Docker 容器。

getent group docker

sudo groupadd docker

sudo usermod -aG docker your_username

或者

sudo gpasswd -a your_username docker

newgrp docker

docker-compose安装

Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。使用前面介绍的Dockerfile我们很容易定义一个单独的应用容器。然而在日常开发工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个 Web 项目,除了 Web 服务容器本身,往往还需要再加上后端的数据库服务容器;再比如在分布式应用一般包含若干个服务,每个服务一般都会部署多个实例。如果每个服务都要手动启停,那么效率之低、维护量之大可想而知。这时候就需要一个工具能够管理一组相关联的的应用容器,这就是Docker Compose。

从github上下载docker-compose二进制文件安装

责任编辑:CQITer新闻报料:400-888-8888   本站原创,未经授权不得转载
继续阅读
热新闻
推荐
关于我们联系我们免责声明隐私政策 友情链接