在 ubuntu 安装 docker 引擎
开始前
如果你使用 ufw 或 firewalld 来管理防火墙设置,请注意,当使用 Docker 暴露容器端口时,这些端口会绕过你的防火墙规则。更多信息请参阅 Docker 和 ufw。
Docker 仅兼容 iptables-nft 和 iptables-legacy。使用 nft 创建的防火墙规则在安装 Docker 的系统上不受支持。确保你使用的任何防火墙规则集是用 iptables 或 iptables6 创建的,并将它们添加到 DOCKER-USER 链中,详见数据包过滤和防火墙。
系统要求
需要以下 64 位的 ubuntu 版本。此文章仅针对 ubuntu
Ubuntu Noble 24.04 (LTS)
Ubuntu Mantic 23.10 (EOL: July 12, 2024)
Ubuntu Jammy 22.04 (LTS)
Ubuntu Focal 20.04 (LTS)
卸载老版本
1
| for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
|
使用 apt 仓库安装docker 引擎
安装 Docker apt 仓库.
1
2
3
4
5
6
7
8
9
10
11
12
13
| # Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
sudo mkdir /etc/apt/sources.list.d
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
|
安装 docker 引擎
1
| sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
|
自动启动
1
2
| sudo systemctl enable docker
sudo systemctl start docker
|
将当前用户加入Docker用户组
查询是否有docker用户组
1
2
3
4
| > grep docker /etc/group
#出现下面的行,说明有 docker 用户组
> docker❌988:
|
如果没有用户组
查看当前用户有没有 docker 组
将当前用户加入docker用户组
1
| sudo usermod -aG docker ${USER}
|
重新登录终端
重启docker服务
1
| sudo systemctl restart docker
|
国内修改 docker 镜像
自建 cloudflare 免费 docker 镜像
参考这篇文章:用免费 cloudflare 服务搭建 docker 镜像服务代理
https://www.ked.pub/cloudnative/proxy-docker-by-free-cloudflare/
修改国内镜像
sudo tee /etc/docker/daemon.json «EOF
{
“registry-mirrors”: [“https://docker.yourdomain.com”]
}
EOF
国外登录 docker.com
docker login
测试
1
| sudo docker run hello-world
|