在Ubuntu服务器上安装Docker(支持Ubuntu 20.04/22.04等版本):

1. 卸载旧版本(如有)

如果系统曾安装过旧版Docker,先清理残留:

bash 复制代码
sudo apt remove docker docker-engine docker.io containerd runc

2. 添加Docker官方仓库

安装依赖工具

bash 复制代码
sudo apt update
sudo apt install -y ca-certificates curl gnupg

添加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
sudo chmod a+r /etc/apt/keyrings/docker.gpg

添加APT仓库

bash 复制代码
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

3. 安装Docker引擎

bash 复制代码
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4. 验证安装

检查Docker版本并运行测试容器:

bash 复制代码
sudo docker --version
sudo docker run hello-world  # 若输出"Hello from Docker!"则成功

5. 配置非root用户权限(可选)

允许当前用户无需sudo执行Docker命令:

bash 复制代码
sudo usermod -aG docker $USER
newgrp docker  # 刷新用户组(或重新登录)

验证:

bash 复制代码
docker run hello-world  # 无需sudo

6. 配置镜像加速器(国内用户推荐)

修改Docker配置文件/etc/docker/daemon.json,添加镜像加速地址(如阿里云):

bash 复制代码
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://your-mirror-id.mirror.aliyuncs.com"]
}
EOF

重启Docker生效:

bash 复制代码
sudo systemctl restart docker

7. 管理Docker服务

启动/停止Docker服务:

bash 复制代码
sudo systemctl start docker   # 启动
sudo systemctl stop docker    # 停止
sudo systemctl enable docker  # 设置开机自启

8. 安装Docker Compose(可选)

若需使用Compose管理多容器:

bash 复制代码
sudo apt install docker-compose-plugin
docker compose version  # 验证

常见问题 权限拒绝错误:未将用户加入docker组时,运行docker命令需加sudo。

镜像拉取失败:检查网络或配置镜像加速器。

端口冲突:若Docker容器端口被占用,通过docker ps检查运行中的容器。

相关推荐
CheungChunChiu36 分钟前
Linux 内核设备模型与驱动框架解析 ——以 rk-pcie 为例
linux·运维·ubuntu
列逍1 小时前
Linux进程(三)
linux·运维·服务器·环境变量·命令行参数
水天需0102 小时前
VS Code Ctrl+Shift+V 预览 Markdown 无效的解决方案
linux
赖small强4 小时前
【Linux C/C++开发】Linux 平台 Stack Protector 机制深度解析
linux·c语言·c++·stack protector·stack-protector·金丝雀机制
陌路205 小时前
Linux42 守护进程
linux
liteblue5 小时前
DEB包解包与打包笔记
linux·笔记
minji...5 小时前
Linux 基础IO(一) (C语言文件接口、系统调用文件调用接口open,write,close、文件fd)
linux·运维·服务器·网络·数据结构·c++
赖small强5 小时前
【Linux内存管理】Linux虚拟内存系统详解
linux·虚拟内存·tlb
码龄3年 审核中6 小时前
Linux record 04
linux·运维·服务器
RisunJan6 小时前
Linux命令-ftptop命令(实时监控 ProFTPD 服务器连接状态)
linux·运维·服务器