ubuntu Jammy 22.04 安装 Docker CE
Docker CE(Docker Community Edition)是 Docker 的免费社区版本, 用于个人开发和小型团队. 它包含了 Docker 的核心功能, 允许用户创建、运行和管理容器. 容器是轻量级的、可移植的、自包含的运行时环境, 用于在计算机上运行应用程序. 通过使用 Docker, 用户可以在本地开发和测试容器, 然后将其部署到生产环境中.
CE 与 EE 的简单区别:
- Docker CE(Docker Community Edition) 是社区版,简单理解是免费使用,提供小企业与小的 IT 团队使用,希望从 Docker 开始,并尝试基于容器的应用程序部署。
- Docker EE(Docker Enterprise Edition) 是企业版,收费。提供功能更强。适合大企业与打的 IT 团队。为企业开发和 IT 团队设计,他们在生产中构建、交付和运行业务关键应用程序。
- 官方文档:Install Docker Engine on Ubuntu
- Docker 对内核版本有依赖,Linux Kernel >= 4.14
- Docker Engine 兼容
x86_64(oramd64),armhf,arm64和s390x架构。
通过包管理器安装
卸载旧版本
如果你过去安装过 docker, 先删掉:
sudo apt-get remove docker docker-engine docker.io containerd runc
安装依赖
sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
信任 GPG 公钥
sudo mkdir -p /etc/apt/keyrings
#docker.com
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#tuna
curl -fsSL https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#huaweicloud
curl -fsSL https://repo.huaweicloud.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#aliyun
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#tencentcloud
curl -fsSL http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#163
curl -fsSL http://mirrors.163.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#volces
curl -fsSL https://mirrors.volces.com/docker/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#USTC
curl -fsSL http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#ISCAS
curl -fsSL https://mirror.iscas.ac.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#HIT
curl -fsSL https://mirrors.hit.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#SJTU
curl -fsSL http://mirror.sjtu.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#PKU
curl -fsSL https://mirrors.pku.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#XJTU
curl -fsSL https://mirrors.xjtu.edu.cn/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
#授予对 Docker 公钥的读取权限
sudo chmod a+r /etc/apt/keyrings/docker.gpg
添加软件源
#docker.com
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
#tuna mirror
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.tuna.tsinghua.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#huaweicloud
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://repo.huaweicloud.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#aliyun
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#tencentcloud
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#163
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.163.com/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#volces
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.volces.com/docker/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#USTC
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#ISCAS
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirror.iscas.ac.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#HIT
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.hit.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#SJTU
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://mirror.sjtu.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#PKU
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.pku.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#XJTU
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://mirrors.xjtu.edu.cn/docker-ce/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
更新索引文件
sudo apt-get update
安装 Docker Engine
安装 Docker Engine/containerd/Docker Compose.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
使用安装包安装
官方下载站为 https://download.docker.com/linux/ubuntu/dists/, 下载速度慢点可以使用国内镜像站.
- Aliyun 阿里云
https://mirrors.aliyun.com/docker-ce/linux/ubuntu/dists/ - AzureChinaCloud Azure 中国
https://mirror.azure.cn/docker-ce/linux/ubuntu/dists/ - HuaWeiCloud 华为云
https://repo.huaweicloud.com/docker-ce/linux/ubuntu/dists/ - TencentCloud 腾讯云
http://mirrors.cloud.tencent.com/docker-ce/linux/ubuntu/dists/ - 163 网易
http://mirrors.163.com/docker-ce/linux/ubuntu/dists/ - volces 火山引擎
https://mirrors.volces.com/docker/linux/ubuntu/dists/ - USTC 中科大
http://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu/dists/ - ISCAS 中科院软件研究所
https://mirror.iscas.ac.cn/docker-ce/linux/ubuntu/dists/ - HIT 哈工大
https://mirrors.hit.edu.cn/docker-ce/linux/ubuntu/dists/ - SJTU 上交
http://mirror.sjtu.edu.cn/docker-ce/linux/ubuntu/dists/ - PKU 北大
https://mirrors.pku.edu.cn/docker-ce/linux/ubuntu/dists/ - XJTU 西交
https://mirrors.xjtu.edu.cn/docker-ce/linux/ubuntu/dists/
选择 Ubuntu 版本 (例如,Ubuntu 2204 为 jammy).
点击
pool/stable/选择系统架构 (x86_64/amd64,armhf,arm64和s390x),常见的如 x86_64/amd64下载 Docker Engine, CLI, containerd, and Docker Compose 安装包。
containerd.io_<version>_<arch>.debdocker-ce_<version>_<arch>.debdocker-ce-cli_<version>_<arch>.debdocker-compose-plugin_<version>_<arch>.deb
安装下的的
.deb包。sudo dpkg -i ./containerd.io_<version>_<arch>.deb \
./docker-ce_<version>_<arch>.deb \
./docker-ce-cli_<version>_<arch>.deb \
./docker-compose-plugin_<version>_<arch>.deb
通过一键脚本安装
Docker 提供了一个自动配置与安装的脚本,支持 Debian、RHEL、SUSE 系列及衍生系统的安装。
不建议生产环境中使用一键脚本安装!The convenience script isn't recommended for production environments.
使用国内镜像站
#tuna 清华
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
#Aliyun 阿里云
export DOWNLOAD_URL="https://mirrors.aliyun.com/docker-ce"
#AzureChinaCloud Azure中国
export DOWNLOAD_URL="https://mirror.azure.cn/docker-ce"
#HuaWeiCloud 华为云
export DOWNLOAD_URL="https://repo.huaweicloud.com/docker-ce"
#TencentCloud 腾讯云
export DOWNLOAD_URL="http://mirrors.cloud.tencent.com/docker-ce"
#163 网易
export DOWNLOAD_URL="http://mirrors.163.com/docker-ce"
#volces 火山引擎
export DOWNLOAD_URL="https://mirrors.volces.com/docker"
#USTC 中科大
export DOWNLOAD_URL="http://mirrors.ustc.edu.cn/docker-ce"
#ISCAS 中科院软件研究所
export DOWNLOAD_URL="https://mirror.iscas.ac.cn/docker-ce"
#HIT 哈工大
export DOWNLOAD_URL="https://mirrors.hit.edu.cn/docker-ce"
#SJTU 上交
export DOWNLOAD_URL="http://mirror.sjtu.edu.cn/docker-ce"
#PKU 北大
export DOWNLOAD_URL="https://mirrors.pku.edu.cn/docker-ce"
#XJTU 西交
export DOWNLOAD_URL="https://mirrors.xjtu.edu.cn/docker-ce"
一键安装
curl -fsSL https://get.docker.com -o get-docker.sh
DRY_RUN=1 sudo sh ./get-docker.sh
curl -fsSL https://get.docker.com/ | sudo sh
#--OR--
wget -O- https://get.docker.com/ | sudo sh
配置 Docker
安装校验
$ sudo docker version
Client:
Version: 20.10.17
API version: 1.41
Go version: go1.17.11
Git commit: 100c701
Built: Mon Jun 6 22:56:42 2022
OS/Arch: linux/amd64
Context: default
Experimental: true
Server: Docker Engine - Community
Engine:
Version: 20.10.17
API version: 1.41 (minimum version 1.12)
Go version: go1.17.11
Git commit: a89b842
Built: Mon Jun 6 23:01:45 2022
OS/Arch: linux/amd64
Experimental: true
containerd:
Version: v1.6.6
GitCommit: 10c12954828e7c7c9b6e0ea9b0c02b01407d3ae1
runc:
Version: 1.1.2
GitCommit: v1.1.2-0-ga916309f
docker-init:
Version: 0.19.0
GitCommit: de40ad0
运行 hello-world 镜像
$ sudo docker run hello-world
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
非 root 用户使用
默认情况下,docker 只允许在 root 用户下使用,如果想让非 root 用户使用 docker, 可将当前用户添加到 docker 用户组。
#Create the docker group.
sudo groupadd docker
#Add your user to the docker group.
sudo usermod -aG docker $USER
#Log out and log back in so that your group membership is re-evaluated.
exit
如果遇见以下错误:
WARNING: Error loading config file: /home/user/.docker/config.json -
stat /home/user/.docker/config.json: permission denied
解决方法:
删除
~/.docker/目录或者使用下面命令更改文件夹权限:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
配置 Docker 服务在引导时启动
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
#To stop this behavior, use disable instead.
sudo systemctl disable docker.service
sudo systemctl disable containerd.service
#restart docker
sudo systemctl daemon-reload
sudo systemctl restart docker
Docker Hub 国内镜像
[[docker-hub-mirror]]