这里我将以Ubuntu为例,来进行docker的卸载和安装,首先我们可以先查看自己的操作系统版本以及CPU支持

# 查看CPU
uname -a
# 查看操作系统版本
cat /etc/*release*

其次我们需要卸载旧版本,我们输入 docker 命令查看我们的服务器是否存在旧版本,显然我的服务器是存在的

此时就需要先进行卸载

卸载

apt-get remove docker docker-engine docker.io containerd runc

以及卸载残留的docker相关组件,以及相关目录

# 相关组件
apt-get purge docker-ce docker-ce-cli containerd.io dockerbuildx-plugin docker-compose-plugin docker-ce-rootless-extras -y

# 清理目录
sudo rm -rf /var/lib/docker   # Docker默认数据存储目录
sudo rm -rf /var/lib/containerd  # containerd数据目录
sudo rm -rf /etc/docker  # Docker配置目录

安装

首先安装 curl 命令

sudo apt install curl -y

创建gpg key 目录,并下载 gpg key目录

# 创建目录
sudo mkdir -m 0755 -p /etc/apt/keyrings
# 获取docker官方密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/docker.gpg
# 执行 [配置docker apt源]命令
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新 apt 包索引

执行命令让系统识别新配置的 Docker 源:

sudo apt update

安装 Docker Engine 及相关组件

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

验证 Docker 安装

docker version
# 查看更详细的信息
docker info

自动启动配置

#配置加载 
sudo systemctl daemon-reload 
#启动服务 
sudo systemctl start docker 
#开启启动 
sudo systemctl enable docker 
#查看服务状态 
sudo systemctl status docker 

执行hello-world

sudo docker run hello-world

常见问题

安装

如果在获取docker密钥的时候遇到了以下的问题,是因为链接失败,可以换成国内镜像

# 获取阿里云 docker 官方密钥
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor --yes -o /etc/apt/trusted.gpg.d/docker.gpg
# 配置阿里云 docker apt 源
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/trusted.gpg.d/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

接着下载就可以了

链接

在输入 hello-world 时,可能会出现链接超时的问题,网络环境无法直接连接,且镜像加速器配置未生效

我们需要做出以下修改(这里我使用的腾讯云):

创建/修改 docker 配置文件

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
EOF

重启服务

sudo systemctl daemon-reload
sudo systemctl restart docker

验证加速器是否生效

docker info | grep "Registry Mirrors" -A 2

然后再重新进行拉去

sudo docker run hello-world

空间不足

当你的/var/lib/docker目录所在磁盘空间不够用(比如默认系统盘很小,而 Docker 要存大量镜像)时,需要修改目录;如果系统盘空间充足(比如 50G 以上),可以不用改。

有三种方式可以用来修改

  • 挂载大磁盘到 /var/lib/docker

    • 适用:云服务器(如腾讯云)安装 K8s/ Docker 时,提前规划磁盘的场景。

    • 操作:云厂商控制台直接将大磁盘挂载到/var/lib/docker目录(安装前操作)

  • 软链接

    • 适用:安装 Docker 前,已经挂载了大磁盘(比如挂载到/data),但没直接挂到/var/lib/docker

    • 操作:ln -s /data/docker /var/lib/docker(让 Docker 实际存储到/data/docker)。

  • 修改 Docker 配置文件

    • 适用:已经装了 Docker,且/var/lib/docker空间不够,需要迁移目录。

    • 操作:修改/etc/docker/daemon.json,添加"data-root": "/新目录路径",然后迁移数据 + 重启 Docker。

这里重点说一下第三个

#假定我们磁盘的大的目录为 /data 
mkdir -p /data/var/lib/docker 
# 编辑配置文件 
vi /etc/docker/daemon.json 
# 输入下面的 json 
{ 
    "data-root": "/data/var/lib/docker" 
} 
# 加载配置 
sudo systemctl daemon-reload 
# 重启 docker 
sudo systemctl restart docker 
#查看 docker 状态 
sudo systemctl status docker

我们就可以看到在指定目录下了

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐