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

相关推荐
网硕互联的小客服6 小时前
Linux服务器磁盘应该如何合理分区?
linux·运维·服务器
贵沫末7 小时前
Ubuntu——常用软件安装
linux·运维·ubuntu
Doraemomo8 小时前
Linux内核驱动开发——中断与定时器
linux·运维·驱动开发
2301_808414388 小时前
Linux中动静态库的理解
linux·运维·服务器
誰能久伴不乏8 小时前
保姆级 Docker 入门教程
docker·容器·eureka
M78佐菲9 小时前
ARM学习笔记(11)
linux·arm开发·笔记·嵌入式硬件·学习
M78佐菲9 小时前
ARM学习笔记(10)
linux·arm开发·笔记·嵌入式硬件·学习
半仙白桑9 小时前
内核篇第十五讲:system-V共享内存
linux·共享内存·shmget·shmat·shmdt·shmctl
一条破秋裤10 小时前
Linux 线程创建:pthread_create 与基本回收
java·linux·运维
阿钱真强道11 小时前
15 嵌入式操作系统 | 库的下载、编译、安装与验证(libubox / ubus / uci)
ubuntu·cmake·uci·ubus·libubox