Docker 是一种非常流行的容器封装技术,使用 Docker image 可以轻松部署和迁移在当前系统下已经安装好的项目,而无需再重新配置项目依赖。
在 Debian GNU Linux 系统下使用默认源 apt get 来安装 Docker 往往会安装一个旧版的 Docker 以及 Docker compose,当然也包括部分旧版的docker-compose;
本教程将会讲述如何卸载 Debian 自带源的旧版 Docker 以及安装官网最新版,和实现自主更新到最新 Docker 和 Docker compose 版本。
1、停用和卸载系统自带的docker:
由于 Debian 自带源的 Docker 为旧版,而且版本更迭缓慢,所以首先卸载干净系统已安装的 Docker。
systemctl stop docker && systemctl disable docker
清除Docker和关联软件包:
apt purge -y docker docker-engine docker.io containerd runc docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker-ce-rootless-extras
清除残留配置文件:
rm -rf /var/lib/docker
rm -rf /var/lib/containerd
rm /etc/docker/daemon.json
强烈建议完成上述卸载步骤后执行 reboot 重启当前系统。
2、更新源以及添加Docker官方源:
首先需要更新以下 Debian 的软件源以及安装依赖,再添加 Docker 的官方源到系统内置列表。
apt update && apt install -y ca-certificates curl gnupg
安装官方源的key:
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
chmod a+r /etc/apt/keyrings/docker.gpg
添加官方源到系统源列表:
echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
此时再更新系统源软件包的时候就会自动代入Docker的官方源,更新也会和官方发布的一样。
3、更新源并安装最新版Docker:
此时就可以正常安装最新版 Docker 和 Docker compose 了。
apt update
安装docker以及其他组件:
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
此时安装已经完成,可以通过以下命令来查看 Docker 和 Docker compose 版本号
docker compose version
之后需要更新 Docker 和 Docker compose 的话只需要执行 apt update && apt upgrade 即可。
4、关于docker-compose的一些说明:
很多网络上的教程都会使用 docker-compose 来运行 compose 项目,但其实官方最新版已经是推荐直接使用 docker compose 来运行项目了,
其实两者本质上没有任何功能上的区别,只是多了一个横线,不过为了某些一键脚本的兼容性考虑这里也提供一下单独安装 docker-compose 的步骤。
curl -L "https://github.com/docker/compose/releases/download/v2.20.3/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
赋予可执行权限:
chmod +x /usr/local/bin/docker-compose
这里要注意的是 v2.20.3 这个版本是本文发布时的版本号,具体的最新版本则需要根据当时情况到 Github 查看最新版本号来下载。
5、另外附上一些基础docker命令:
Docker 命令:
systemctl enable docker && systemctl start docker
重启docker服务:
systemctl daemon-reload && systemctl restart docker
停止并关闭自启动Docker:
systemctl disable docker && systemctl stop docker
停止并关闭自启动containerd:
systemctl disable containerd && systemctl stop containerd
显示docker容器:
docker ps -a
停止docker容器:
docker stop XXX
删除docker容器:
docker rm XXX
显示docker镜像:
docker image ls
删除docker镜像:
docker image rm XXX
查看docker网卡:
docker network ls
创建docker网卡:
docker network create XXX
查看docker volume:
docker volume ls
清除全部docker镜像:
docker system prune && docker container prune && docker image prune && docker volume prune && docker network prune
Docker compose命令:
nano docker-compose.yml
当前目录启动 docker compose:
docker compose up -d
当前目录停止 docker compose:
docker compose down
重启指定 docker compose 容器:
docker compose restart XXX
当前目录更新 docker compose 的 image
docker compose pull
以上是部分 Docker 以及 Docker compose 的部分基础命令,应该可以满足大部分的日常操作,如果需要更多命令请搜索资料或者观看 Docker 的教学视频。