【Docker】Ubuntu系统安装Docker

0 引言

在如今的云原生时代,Docker 早已不是开发者口中的 “新鲜词”—— 这个能把应用程序连同依赖环境一起打包成标准化容器的工具,早已成为简化部署、提升开发效率的 “利器”。无论是前后端开发、微服务架构,还是 DevOps 流水线,Docker 都扮演着不可或缺的角色。
而 Ubuntu 作为最受欢迎的 Linux 发行版之一,因其稳定的性能和丰富的生态,成为了很多开发者部署 Docker 的首选系统。

这篇文章会用清晰的步骤带你从0到1在Ubuntu系统中搭建 Docker 环境,无论是Ubuntu 20.04、22.04还是最新版本,都能轻松适配。

跟着操作,5分钟就能让你的 Docker跑起来,从此告别“环境配置两小时,代码运行五分钟” 的尴尬。准备好你的 Ubuntu 终端了吗?让我们开始吧!

1 更新apt下载源

  • 先备份原始系统文件
sudo mv /etc/apt/sources.list /etc/apt/sources.list_backup
  • 编辑 sources.list 文件
sudo vi /etc/apt/sources.list
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

在这里需要注意ubuntu的版本信息,例如bionic和jammy有所区别,不同代号下需要写不同的源配置文件。
可以通过命令lsb_release -a进行查看版本信息。

deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
  • 执行 sudo apt-get update 更新apt软件源
sudo apt-get update

2 设置仓库

在新主机上首次安装Docker引擎前,您需要先设置Docker软件仓库。 之后您就可以从该仓库安装和更新Docker。

  • 更新 apt 软件包索引并安装相关软件包以允许 apt 通过 HTTPS 使用存储库:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
  • 添加Docker的官方GPG密钥:
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
  • 使用以下命令设置存储库:
echo \
  "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  • 更新 apt 软件包索引:
sudo apt-get update

3 安装Docker引擎

  • 安装Docker引擎、containerd和Docker Compose。要安装最新版本,请运行:
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

4 更改Docker默认存储位置

  • 查看Docker数据存储路径
sudo docker info
  • 查看Docker数据占用的存储空间(-v参数是详细列出)
sudo docker system df
  • 新建配置文件并配置信息
sudo vim /etc/docker/daemon.json
{
"data-root": "/mnt/data/docker",
"registry-mirrors": [
  "https://docker.m.daocloud.io/",
  "https://dockerhub.icu/",
  "https://docker.chenby.cn/",
  "https://docker.1panel.live/",
  "https://docker.awsl9527.cn/",
  "https://docker.anyhub.us.kg/",
  "https://dhub.kubesre.xyz/",
  "https://huecker.io/",
  "https://dockerhub.timeweb.cloud/",
  "https://noohub.ru/",
  "https://registry.docker-cn.com/",
  "https://docker.mirrors.ustc.edu.cn/",
  "http://hub-mirror.c.163.com/",
  "http://mirror.iscas.ac.cn/",
  "https://9tttqdle.mirror.aliyuncs.com/"]
}
  • 将原来的docker文件夹拷贝到新的地方
sudo cp -r /var/lib/docker /mnt/data/docker
  • 重启Docker服务
sudo systemctl daemon-reload
sudo systemctl restart docker
  • 删除原来的文件
sudo rm -r /var/lib/docker

5 结语

到这里,我们已经完成了Ubuntu系统安装Docker的操作。
此刻,你可以在命令行中输入以下指令查看是否安装成功。

docker -v

在这里插入图片描述
如果可以正常显示Docker的版本信息,恭喜你,成功了。这不仅是一个测试,更是你迈入容器化世界的第一步。

后续,你可以尝试用docker pull拉取镜像,用docker run启动第一个应用容器,甚至通过docker-compose编排多容器服务。

记住,Docker 的魅力在于“一次构建,到处运行”,而Ubuntu稳定的底层环境,将为你的容器化实践提供坚实的支撑。

希望这篇教程能帮你顺利开启Docker之旅,期待你用容器化技术简化开发流程,解锁更多高效工作的可能。我们下一个技术教程再见!

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐