ubuntu云服务器安装docker及docker-compose保姆级教程

本文记录在ubuntu云服务器上安装docker和docker-compose的完整过程及踩坑

为什么安装docker时会卡在添加秘钥这一步?
为什么安装docker-compose时,下载总是失败?
为什么安装的docker-compose不是最新版本?

且看下文,帮你解惑~

卸载旧版本

如果你的服务器上已经安装了docker或者docker-compose,你需要先进行卸载,为了避免出现一些奇奇怪怪的问题,最好使用以下步骤彻底卸载:

停止并删除所有Docker容器和镜像

1
2
3
4
5
6
7
8
# 停止所有正在运行的Docker容器
sudo docker stop $(sudo docker ps -a -q)

# 删除所有Docker容器
sudo docker rm $(sudo docker ps -a -q)

# 删除所有Docker镜像
sudo docker rmi $(sudo docker images -q)

卸载Docker Engine、CLI和containerd

1
sudo apt-get purge -y docker-ce docker-ce-cli containerd.io

删除Docker相关文件和目录

1
2
3
4
5
6
7
8
# 删除Docker的默认工作目录
sudo rm -rf /var/lib/docker

# 删除Docker的配置文件目录
sudo rm -rf /etc/docker

#删除Docker的systemd服务文件(如果有)
sudo rm /etc/systemd/system/docker.service.d/override.conf

卸载Docker Compose

先尝试使用apt-get卸载

1
sudo apt-get purge -y docker-compose

再删除对于目录

1
sudo rm /usr/local/bin/docker-compose

如果使用pip安装了Docker Compose,还需要卸载pip版本

1
sudo pip uninstall docker-compose

清理系统文件和配置

1
2
3
4
5
# 删除Docker相关的依赖包
sudo apt-get autoremove -y --purge docker-ce docker-ce-cli containerd.io

# 清理apt缓存
sudo apt-get clean

安装Docker

清理完旧版本的docker和docker-compose后,接下来就是进入了安装过程。安装过程中主要会遇到以下问题:
1、ubuntu软件包管理器找不到对应docker及docker-compose安装包,需要添加APT仓库
2、在国内环境某些资源的下载可能会存在网络问题
3、docker-compose下载版本号问题

更新系统软件包和依赖包

1
2
3
4
5
6
# 更新系统软件包
sudo apt update
sudo apt upgrade

# 安装必要的依赖包
sudo apt install apt-transport-https ca-certificates curl software-properties-common

添加Docker的官方GPG密钥

1
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings

如果下载一直卡住,是网络问题,尝试换一个源,使用以下命令:

1
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings

秘钥添下载到本地后,需要获取权限

1
sudo chmod a+r /etc/apt/keyrings/docker.asc

添加Docker的APT仓库

1
2
3
4
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

更新APT包索引

1
sudo apt-get update

安装Docker CE

1
sudo apt-get install docker-ce docker-ce-cli containerd.io

验证Docker安装是否成功

1
sudo docker --version

安装docker-compose

如果直接使用apt-get来安装docker-compose,安装的docker-compose可能不是最新版本,想安装最新版,应该怎么做呢?可以参考以下步骤:

获取最新版本compose下载链接

访问docker-compose的GitHub发布页面,找到最新版本的下载链接。笔者写这篇文章时,是1.29.1版本。

下载compose

官方提供了可执行文件,下载下来后直接放到bin目录下,则可以通过命令来执行

1
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

ps:注意需要将上述版本号:1.29.1替换成你需要的版本号。

由于众所周知的原因,下载github releases时可能慢如龟速,简直不能忍,可以尝试使用自己的代理加速,笔者这里使用的免费的加速如下:

1
sudo curl -L "https://gh.jiasu.in/https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

ps:以上加速连接可能失效,可以通过油猴插件脚本进行获取。

2024年9月3日23:02:53更新:
1、从2.xx.xx开始,其版本号加了v,而网上很多教程(包括本文)还是基于1.xx.xx的,所以正确的下载应该使用如下命令(注意看数字版本前多了v)

1
sudo curl -L "https://github.com/docker/compose/releases/download/v2.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2、油猴现已改名篡改猴

设置权限

为所有用户添加执行权限,如果不进行这一步,docker-compose执行时会报错

1
sudo chmod +x /usr/local/bin/docker-compose

验证版本

1
docker-compose --version

通过以上步骤,你可以在Ubuntu云服务器上安装最新版本的docker-compose。这种方法直接从GitHub下载二进制文件,确保你获得的是最新版本。

参考

Install Docker Engine on Ubuntu | Docker Docs
最详细的ubuntu 安装 docker教程-腾讯云开发者社区-腾讯云