在Fedora\Ubuntu中安装Docker和Docker Compose

文章目录

  • Fedora中安装Docker
  • Ubuntu中安装Docker

如何在Fedora中安装Docker

一、安装Docker Engine

推荐通过Docker官方仓库安装(确保版本最新且官方维护)。

1. 卸载旧版本(如有)

若系统中存在旧版Docker相关组件,先卸载避免冲突:

sudo dnf remove -y docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

2. 安装依赖工具

安装添加仓库和验证包所需的依赖:

sudo dnf install -y ca-certificates curl gnupg2 lsb-release

3. 添加Docker官方GPG密钥

导入Docker官方GPG密钥以验证包的完整性:

# 下载 Docker GPG 密钥
curl -fsSL https://download.docker.com/linux/fedora/gpg -o docker-gpg.key

# 导入下载好的密钥文件
sudo rpm --import docker-gpg.key

4. 添加Docker YUM仓库

将Docker官方仓库添加到Fedora的dnf源中:

# 添加 Docker 仓库
echo "[docker-ce-stable]
name=Docker CE Stable - \$basearch
baseurl=https://download.docker.com/linux/fedora/\$releasever/\$basearch/stable
enabled=1
gpgcheck=1
gpgkey=https://download.docker.com/linux/fedora/gpg" | sudo tee /etc/yum.repos.d/docker-ce.repo > /dev/null

5. 安装Docker Engine

更新仓库索引后,安装Docker核心组件:

sudo dnf update -y
sudo dnf install -y docker-ce docker-ce-cli containerd.io

6. 启动Docker服务并验证

启动Docker服务并设置开机自启:

# 启动Docker服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

验证Docker是否正常运行(运行测试镜像):

sudo docker run hello-world

若输出“Hello from Docker!”,说明Docker安装成功。

二、安装Docker Compose

Docker Compose v2已作为Docker官方插件集成,可直接通过dnf安装:

sudo dnf install -y docker-compose-plugin

验证安装:

docker compose version

输出类似Docker Compose version v2.x.x即表示安装成功。

三、允许非root用户使用Docker

默认情况下,docker命令需要root权限(因Docker守护进程绑定到Unix socket,默认归rootdocker组所有)。通过将用户加入docker组,可让非root用户直接使用docker命令。

1. 确保docker用户组存在

安装Docker时会自动创建docker组,若不存在可手动创建:

sudo groupadd docker # 若已存在会提示“group 'docker' already exists”,忽略即可

2. 将非root用户添加到docker

假设目标用户为your_username(替换为实际用户名),执行:

sudo usermod -aG docker your_username

-aG:-a表示“追加”(不覆盖原有组),-G指定要加入的组。

3. 生效用户组配置

用户组变更需重新登录才能生效(注销当前会话后重新登录),或临时生效(无需注销):

newgrp docker

4. 验证非root权限

重新登录后,执行以下命令(无需sudo):

docker run hello-world

若成功运行,说明非root用户已可正常使用Docker。

Fedora中的注意事项

  • Fedora默认启用SELinux,若Docker运行中出现权限相关错误(如挂载目录失败),可临时关闭SELinux测试(sudo setenforce 0),或配置SELinux策略允许Docker访问(推荐长期方案,具体可参考Docker官方文档)。
  • 添加用户到docker组后,该用户拥有类似root的系统资源操作权限,需确保用户可信。
  • 若权限问题持续,可重启Docker服务:sudo systemctl restart docker

在Ubuntu系统中安装Docker、Docker Compose并配置非root用户权限,可按以下步骤操作:


如何在Ubuntu中安装Docker

一、安装Docker Engine

推荐通过Docker官方仓库安装(确保版本最新且官方维护)。

1. 准备依赖工具

首先更新系统包索引,并安装必要的依赖(用于添加Docker仓库和验证包完整性):

sudo apt update
sudo apt install -y ca-certificates curl gnupg lsb-release

2. 添加Docker官方GPG密钥

为确保下载的Docker包是官方发布的,需添加其GPG密钥:

# 创建密钥存储目录
sudo install -m 0755 -d /etc/apt/keyrings

# 下载并添加Docker GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

# 设置密钥文件权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg

3. 添加Docker APT仓库

将Docker官方仓库添加到系统的APT源列表中:

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 Engine

更新包索引后,安装Docker核心组件(包括Docker引擎、CLI和容器运行时):

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

5. 验证Docker安装并启动服务

启动Docker服务并设置开机自启:

# 启动Docker服务
sudo systemctl start docker

# 设置开机自启
sudo systemctl enable docker

验证Docker是否正常运行(运行一个测试镜像):

sudo docker run hello-world

如果输出类似“Hello from Docker!”的信息,说明Docker安装成功。

二、安装Docker Compose

Docker Compose目前已作为Docker的官方插件集成,可直接通过APT安装:

sudo apt install -y docker-compose-plugin

验证安装:

docker compose version

输出类似Docker Compose version v2.x.x即表示安装成功。

三、允许非root用户使用Docker

默认情况下,docker命令需要root权限(因Docker守护进程绑定到Unix socket,默认归root所有)。通过将用户加入docker用户组,可让非root用户直接使用docker命令。

1. 确保docker用户组存在

安装Docker时会自动创建docker用户组,若不存在可手动创建:

sudo groupadd docker # 若已存在会提示“group 'docker' already exists”,忽略即可

2. 将非root用户添加到docker

假设目标用户为your_username(替换为实际用户名),执行:

sudo usermod -aG docker your_username

-aG:-a表示“追加”(不覆盖原有组),-G指定要加入的组。

3. 生效用户组配置

用户组变更需重新登录才能生效(注销当前会话后重新登录),或临时生效(无需注销):

newgrp docker

4. 验证非root权限

重新登录后,执行以下命令(无需sudo):

docker run hello-world

若成功运行,说明非root用户已可正常使用Docker。

Ubuntu中的注意事项

  • 添加用户到docker组后,该用户拥有类似root的权限(可操作系统级资源),需确保用户可信。
  • 若后续使用中仍提示权限不足,检查用户是否已重新登录,或重启Docker服务:sudo systemctl restart docker