在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检查运行中的容器。

相关推荐
0vvv010 分钟前
删除wsl环境下的Ubuntu系统
linux·运维·ubuntu
@土豆13 分钟前
Ubuntu 22.04 运行 Filebeat 7.11.2 崩溃问题分析及解决文档
linux·数据库·ubuntu
木子欢儿21 分钟前
Docker Hub 镜像发布指南
java·spring cloud·docker·容器·eureka
C++ 老炮儿的技术栈28 分钟前
GCC编译时无法向/tmp 目录写入临时汇编文件,因为设备空间不足,解决
linux·运维·开发语言·汇编·c++·git·qt
爱莉希雅&&&1 小时前
linux中MySQL数据库备份恢复的四种方法(更新中)
linux·数据库·mysql·数据库备份·mysqldumper
藤谷性能1 小时前
Ubuntu 22.04:安装SEGGER Embedded Studio
ubuntu·nrf52832·ses·embedded studio
coppher1 小时前
Ubuntu 22.04 amd64 离线安装 Docker 完整教程
linux·docker
xyz5992 小时前
如何在 WSL 中删除指定版本的 Ubuntu 以及安装
linux·运维·ubuntu
亚空间仓鼠2 小时前
OpenEuler系统常用服务(五)
linux·运维·服务器·网络
minji...3 小时前
Linux 线程同步与互斥(二) 线程同步,条件变量,pthread_cond_init/wait/signal/broadcast
linux·运维·开发语言·jvm·数据结构·c++