目录

在 ubuntu 安装 docker 引擎

在 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:

如果没有用户组

1
sudo groupadd docker

查看当前用户有没有 docker 组

1
id ${USER}

将当前用户加入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