64位的,下列之一的Ubuntu操作系统:
如果系统中安装有旧版本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
## 通过repository安装
当你初次在主机上安装docker时,需要先设置Docker repository。之后,就可以从Docker repository安装和更新Docker
更新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
更新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,先运行sudo apt-get update
,然后按照上面的步骤,选择所需新版本安装。
如果无法使用Docker的repository安装,可以下载.deb
文件,手动安装。当你想要更新时,需要每次下载新的安装文件。
访问https://download.docker.com/linux/ubuntu/dists/
,选择自己的Ubuntu版本,浏览pool/stable/
,选择amd64
, armhf
, arm64
, or s390x
,然后下载所需版本的.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在 get.docker.com提供了一个方便的脚本,可以快速、无交互的在开发环境安装。此脚本不推荐在生产环境使用,但可以作为一个示例来创建一个根据您的需要定制的供应脚本。另外,请参阅【通过repository安装】步骤,以了解使用repository安装的步骤。脚本源码是开源的,可以在 repository on GitHub的docker-install
找到。
在本地运行之前,检查下载的脚本。安装之前,请熟悉便利脚本的潜在风险和限制:
提示:运行前预览脚本步骤
您可以使用
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).
在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。重新运行安装脚本并无好处,并且如果试图重新添加已添加到主机的repositories,则可能会导致问题