Docker / Podman 安装与换源

Docker / Podman 安装与换源

Docker / Podman(选一个就好)的安装与 Docker Hub 换源。

Docker 安装

Docker CLI(Linux)

  • 如果你发行版的仓库中有(比如 Arch),那直接用包管理器安装就行了。
  • 需要注意的是,Debian系(包括Ubuntu等)仓库中的 docker 并不是我们要用的,具体可以查看官方文档。
  • 如果仓库中没有,(并且没有网络问题的话)请查看官方文档安装。推荐使用其中的安装脚本。

使用安装脚本步骤如下:

国内安装 Docker 时最好先换源,完整安装流程请查看:Docker CE 软件仓库镜像使用帮助。使用其302智能选择镜像站请先执行:

export DOWNLOAD_URL="https://mirrors.cernet.edu.cn/docker-ce"

镜像同步状态查看:docker-ce - 校园网联合镜像站

# 如您使用 curl
curl -fsSL https://get.docker.com/ | sudo -E sh
# 如您使用 wget
wget -O- https://get.docker.com/ | sudo -E sh

Docker Desktop(Windows & macOS & Linux)

Docker Desktop 是 Docker 官方提供了一个 GUI 管理工具,支持 Windows & macOS & Linux。

Docker 使用了 Linux 内核的一些特性,在 Windows & macOS 上使用需要虚拟机内运行(比如 Windows 上的 Docker 就是通过 WSL 实现的)。这两个平台一般会安装 Docker Desktop,帮你自动化安装,比较省心。

Docker 官网就有,国内下载困难的话,镜像站里也是有的:Docker - 校园网联合镜像站

Linux 上就算了,占用太高了(虽然 Windows 和 macOS 也是),真喜欢这种“面板”不如用 Portainer 或者下面的 Podman Desktop。

其他平台安装

请看 官方文档

Podman 安装

Podman 是 Redhat 开发的 “Docker 替代品”。它是 rootless 的(具体可看官网介绍),并且无需后台运行守护进程。 Podman 用法和 Docker 基本上一样,甚至官方文档里说习惯 docker 的可以直接 alias docker=podman。😂

Podman CLI (Linux)

Podman 因为是 Redhat 推出的,主流发行版的仓库基本都是有的,包管理器直接安装即可。

没有可以直接去 Podman 官网下载。

Podman Desktop(Windows & macOS & Linux)

与 Docker 类似,Podman 也提供了官方的 GUI 管理工具,还支持 Docker 管理,也是支持 Windows & macOS & Linux。

可以直接去 PodmanPodman Desktop 官网下载。

具体实现和 Docker 类似,Windows 和 macOS 上也是虚拟机。但 Windows 端的感觉明显要比 Docker Desktop 轻量。 Linux端就是一个独立的小工具。

rootless 现在 Docker 也有办法实现。但 rootless 说是更安全,但是对我来说反倒会带来不方便,比如跑个 nginx 需要 80、443 ,普通用户没有权限创建,root/sudo 创建了之后普通用户又看不见这个容器。

Docker Hub 仓库镜像

国内有很多 Docker 镜像,但有很多已经停止维护或不再免费开发,比如中科大的已停止校外访问,docker-cn的、腾讯云的等都不能用了。看到还在说这些的相关文章/教程请直接略过。

除了下方的几个,还可以使用阿里云的,但是需要自己去 容器镜像服务 创建专属镜像仓库。当然肯定还有,欢迎评论中提交。

Docker

打开或新建 /etc/docker/daemon.json,添加:

{
	"registry-mirrors": [
		"https://docker.nju.edu.cn",
		"https://docker.mirrors.sjtug.sjtu.edu.cn",
		"https://hub-mirror.c.163.com",
		"https://mirror.baidubce.com",
		"https://dockerproxy.com"
	]
}

Podman

打开 /etc/containers/registries.conf 或新建 /etc/containers/registries.conf.d/docker-mirrors.conf,在末尾添加加:

unqualified-search-registries = ["docker.io"]

[[registry]]
location = "docker.io"

[[registry.mirror]]
location = "docker.nju.edu.cn"
[[registry.mirror]]
location = "docker.mirrors.sjtug.sjtu.edu.cn"
[[registry.mirror]]
location = "hub-mirror.c.163.com"
[[registry.mirror]]
location = "mirror.baidubce.com"
[[registry.mirror]]
location = "dockerproxy.com"