Ubuntu安装Docker
系统要求
64位的,下列之一的Ubuntu操作系统:
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Impish 21.10
- Ubuntu Focal 20.04 (LTS)
- Ubuntu Bionic 18.04 (LTS)
卸载旧版本Docker
如果系统中安装有旧版本docker,需要先卸载:
sudo apt-get remove docker docker-engine docker.io containerd runc
路径/var/lib/docker
下,包括旧版本docker的镜像、容器、数据卷和网络配置,若不需要这些数据,则执行如下操作:
#卸载Docker Engine, CLI, Containerd, and Docker Compose packages
sudo apt-get purge docker-ce docker-ce-cli containerd.io docker-compose-plugin
#删除镜像、容器、数据卷和网络等
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
安装docker的方法
根据需要,可以采取不同的方式安装Docker
- 多数用户采用从Docker’s repositories安装,方便安装和更新。这也是推荐安装的方法
- 一些用户下载DEB安装包,手动安装和更新。这种方法适用于系统无法联网的情况。
- 在测试和开发环境,一些用户自动化安装脚本安装。
## 通过repository安装
当你初次在主机上安装docker时,需要先设置Docker repository。之后,就可以从Docker repository安装和更新Docker
设置repository
-
更新apt包索引并安装包,以允许apt通过HTTPS使用repository:
sudo apt-get update sudo apt-get install \ ca-certificates \ curl \ gnupg \ lsb-release
-
添加Docker的官方GPG key
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
-
使用下列命令设置repository
echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
安装Docker Engine
-
更新
apt
包索引,安装最新版本的Docker Engine、containerd和Docker compose,或跳转到下一步安装指定的版本sudo apt-get update sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
当运行
apt-get update
时,出现GPG错误?Receiving a GPG error when running
apt-get update
?默认umask可能未正确设置,导致无法检测到repository的公钥文件。运行以下命令,然后再次尝试更新您的存储库
sudo chmod a+r/etc/apt/keyrings/docker.gpg
-
为安装指定版本,先列出可用版本,选择安装:
a. 列出可用版本
apt-cache madison docker-ce
b. 使用来自第二列的版本字符串安装特定版本,如:
5:20.10.16~3-0~ubuntu-jammy
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io docker-compose-plugin
-
使用
hello-world
镜像验证Docker Engine安装正确#启动docker sudo service docker start #此命令下载测试映像并在容器中运行。当容器运行时,它打印一条消息并退出。 sudo docker run hello-world
Doker Engine完成安装,正在运行。docker
组被创建,但没有添加用户,需要使用sudo
运行docker命令。参见下列设置Post-installation steps for Linux | Docker Documentation,以允许非特权用户运行Docker命令和其他可选配置步骤。
Docker Engine更新
为更新Docker Engine,先运行sudo apt-get update
,然后按照上面的步骤,选择所需新版本安装。
通过package安装
如果无法使用Docker的repository安装,可以下载.deb
文件,手动安装。当你想要更新时,需要每次下载新的安装文件。
-
访问
https://download.docker.com/linux/ubuntu/dists/
,选择自己的Ubuntu版本,浏览pool/stable/
,选择amd64
,armhf
,arm64
, ors390x
,然后下载所需版本的.deb
文件。 -
安装Docker引擎,将下面的路径更改为下载Docker包的路径:
sudo dpkg -i /path/to/package.deb
Docker守护进程将自动启动。
-
使用
hello-world
镜像验证Docker Engine安装正确#此命令下载测试映像并在容器中运行。当容器运行时,它打印一条消息并退出。 sudo docker run hello-world
Doker Engine完成安装,正在运行。
docker
组被创建,但没有添加用户,需要使用sudo
运行docker命令。参见下列设置,以允许非特权用户运行Docker命令和其他可选配置步骤。
Docker Engine更新
为更新Docker Engine,重新下载新的安装包,重复上面的安装步骤。
通过脚本安装
Docker在 get.docker.com提供了一个方便的脚本,可以快速、无交互的在开发环境安装。此脚本不推荐在生产环境使用,但可以作为一个示例来创建一个根据您的需要定制的供应脚本。另外,请参阅【通过repository安装】步骤,以了解使用repository安装的步骤。脚本源码是开源的,可以在 repository on GitHub的docker-install
找到。
在本地运行之前,检查下载的脚本。安装之前,请熟悉便利脚本的潜在风险和限制:
- 脚本需要root或sudo权限才能运行。
- 该脚本试图检测您的Linux发行版和版本,并为您配置软件包管理系统,但不允许您自定义大多数安装参数。
- 脚本安装依赖项和建议,而不要求确认。这可能会安装大量软件包,具体取决于主机的当前配置。
- 默认情况下,脚本安装Docker、containerd和runc的最新稳定版本。当使用此脚本配置计算机时,这可能会导致意外的Docker主版本升级。在部署到生产系统之前,请始终在测试环境中测试(主要)升级。
- 该脚本不是为升级现有Docker安装而设计的。使用脚本更新现有安装时,依赖项可能不会更新到预期版本,从而导致使用过时的版本。
提示:运行前预览脚本步骤
您可以使用
DRY_run=1
选项运行脚本,以了解安装期间脚本将执行哪些步骤:curl -fsSL https://get.docker.com -o get-docker.sh DRY_RUN=1 sh ./get-docker.sh
正面示例从 get.docker.com下载脚本,安装最新的Docker稳定版本:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Docker安装后,docker
服务在基于Debian的发行版上自动启动。在基于RPM
的发行版本上,如CentOS, Fedora, RHEL or SLES,需要手动使用systemctl
或service
命令启动。如消息所示,默认情况下,非root用户无法运行Docker命令。
作为非特权用户使用Docker,还是以无root模式安装?
安装脚本需要使用
root
权限或sudo
进行安装和使用Docker。如果需要授权非root用户使用Docker,参见post-installation steps for Linux. Docker同样可以在没有root权限情况下安装,或者配置在无root模式下运行。在无root模式下运行Docker,参见 run the Docker daemon as a non-root user (rootless mode).
安装pre-releases版本
在test.docker.com上,同样提供安装pre-release版本的Docker在Linux上。这个脚本和get.docker.com
的脚本相同,但是配置包管理器以启用来自我们的repository的“测试”通道,其中包括Docker的稳定版本和预发行版(测试版、候选发行版)。使用此脚本提前获取新版本,在正式发行前在测试环境下进行评估。
从“测试”通道安装最新版本的Docker在Linux上,运行:
curl -fsSL https://test.docker.com -o test-docker.sh
sudo sh test-docker.sh
使用脚本安装Docker后进行更新
如果使用脚本安装的Docker,需要使用包管理器直接更新Docker。重新运行安装脚本并无好处,并且如果试图重新添加已添加到主机的repositories,则可能会导致问题