# 如果命令需要root权限,前面会有sudo
第一步:安装docker
可以用 dnf 或者 yum 安装。下面以 dnf 为例。如果用yum安装,则需要安装yum工具,且下面步骤中的命令 dnf 替换为 yum.
yum 工具安装,已安装的省略。
yum install -y yum-utils
Rocky Linux 9官方软件库中提供的Docker安装包可能不是最新版本,需要先更新
sudo dnf check-update
添加官方Docker仓库,速度慢
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
国内阿里云稳定的仓库
sudo dnf -config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
虽然Docker没有专门的Rocky Linux仓库,但Rocky Linux是基于CentOS的,可以使用相同的仓库。添加好仓库后,安装Docker,它由三个软件包组成。
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
安装完成后,启动Docker守护程序。
sudo systemctl start docker
验证它是否正在运行
sudo systemctl status docker
输出结果应该与下面类似,显示该服务已被激活并运行
docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: disabled)
Active: active (running) since Fri 2023-08-04 14:12:52 CST; 6 days ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 1079 (dockerd)
最后,确保它在每次服务器重启时启动。
sudo systemctl enable docker
第二步:不使用sudo执行Docker命令
默认情况下,运行docker 命令需要root权限–也就是说,你必须在命令前加上sudo 。它也可以由docker组中的用户运行,该组在安装Docker时自动创建。如果你试图运行docker ,但没有在前缀中加上sudo ,或者没有在docker组中,你会得到这样的输出。
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
如果你想避免每次运行docker 命令时都输入sudo ,请将你的用户名添加到docker组。
sudo usermod -aG docker $(whoami)
你将需要退出当前用户,然后以同一用户身份重新登录,以启用这一变化。
如果你需要将一个用户添加到你没有登录的docker 组中,请使用明确声明该用户名。
sudo usermod -aG docker username
或者 添加当前用户到 docker 组
sudo gpasswd -a ${USER} docker
如果提示socket文件权限不足, 则给 .sock 文件增加如下权限
sudo chmod a+rw /var/run/docker.sock
重启docker 让修改生效
sudo service docker restart
第三步:安装docker-compose
从官方安装地址github进行安装。下载速度可能不动,取消然后重试几次,直到进度有发生变化之后等待下载安装完成,过程会比较慢,目前没有找到稳定的国内地址。
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
添加权限
sudo chmod +x /usr/local/bin/docker-compose
安装成功,查看版本
docker-compose --version