快速上手 Docker:从入门到安装的简易指南(Mac、Windows、Ubuntu)

发布于:2025-05-08 ⋅ 阅读:(19) ⋅ 点赞:(0)

PS:笔者在五一刚回来一直搞Docker部署AI项目,发现从开发环境迁移到生成环境时,Docker非常好用。但真的有一定上手难度,推荐读者多自己尝试踩踩坑。
本篇幅有限,使用与修改另起篇幅。

一、Docker是什么

#1. Docker是什么?

Docker是一个开源软件(平台),通过容器技术能够自动化应用程序的部署、扩展和管理

其中,容器Container是一种轻量级、便携且自给自足的软件打包格式,它包含了运行软件所需的一切(栗如运行环境、配置文件、代码等)。

这里笔者直接进入一个Docker容器,让读者快速感受一下。如下图所示:
在这里插入图片描述
如上图所示,笔者通过docker exec命令进入了一个容器,并进入根目录/打印所有目录。我们可以看到,就是一个Linux目录嘛,不过容器和虚拟机有点不同,下面的#2.会讲到。


#2. 了解一些Docker的关键概念

1️⃣镜像 (Image):
  • Docker镜像是一个只读的模板,用于创建 Docker 容器。它包含运行应用程序所需的所有信息和依赖项。镜像可以从公共存储库中获取,可以自己进行构建。
2️⃣容器 (Container):
  • 容器是镜像的一个可执行实例。它们是隔离的进程,可以在同一主机上并行运行多个容器。容器与传统虚拟机不同,因为它们共享操作系统的内核,而不是每个容器都运行一个完整的操作系统实例,所以更省资源。
3️⃣文件Dockerfile
  • 是一个文本文件,包含了一系列命令,用于自动化地构建 Docker 镜像。这些命令定义了镜像的基础、要安装的软件、环境变量设置,以及启动容器时需要执行的指令。
4️⃣公共资源库Docker Hub
  • Docker Hub 是一个云端的镜像存储库服务,允许用户发布、存储和下载 Docker 镜像。官方网址是:https://hub.docker.com/。
5️⃣编排工具(咳咳,笔者还没有用过,想着开始自己手敲了解一下后面再借助工具):
  • Docker Swarm 和 Kubernetes 等工具可用于容器的编排和管理。这些工具提供了自动化部署、负载均衡、扩展以及故障恢复等功能。

#3. 为什么要用Docker(这里仅讲到笔者的使用感受)

1️⃣部署方便

开发人员可以使用 Dockerfile 定义开发环境,一行代码生成运行环境,拿到生产环境开包即用。

2️⃣节约资源

相较于虚拟机,Docker共享主机操作系统的内核,因此更节省资源。

3️⃣具有备份与回滚功能

每个 Docker 镜像都有其特定版本,可以随时回滚或更新。



二、Mac&Windows以图形化界面安装Docker

安装程序下载地址:https://www.docker.com/products/docker-desktop/

Mac安装后的界面如下图所示:
在这里插入图片描述



三、Ubuntu以命令行安装Docker

Docker镜像搜索:https://hub.docker.com/

#1. 安装依赖

# (可选)删除默认的旧版本docker
sudo apt-get remove docker docker-engine docker.io containerd runc

# 安装依赖
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release apt-transport-https software-properties-common

#2. 添加“官方密钥”与“国内软件源”

# 添加官方GPG密钥
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

# 添加Docker软件源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#3. 安装Docker

# 安装Docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 将用户添加到docker组
sudo usermod -aG docker $USER

# 查看版本验证安装
docker version

出现以下界面即安装成功:
在这里插入图片描述



四、Ubuntu下配置国内镜像

#1. 配置国内镜像源

sudo vim /etc/docker/daemon.json

# daemon.json
{
	"registry-mirrors":[ 
		"https://docker.m.daocloud.io", 
		"https://docker.imgdb.de", 
		"https://docker-0.unsee.tech", 
		"https://docker.hlmirror.com", 
		"https://docker.1ms.run", 
		"https://func.ink", 
		"https://lispy.org", 
		"https://docker.xiaogenban1993.com" 
	]
}

# 重新启动
sudo systemctl daemon-reload && sudo systemctl restart docker

# 查看镜像生效
docker info

#2. 连接错误的处理

但有时国内镜像更新不及时,比如这种报错:
ERROR: failed to solve: node:lts-alpine: failed to do request: Head "https://registry.docker-cn.com/v2/library/node/manifests/lts-alpine?ns=docker.io": net/http: TLS handshake timeout

解析报错:其中registry.docker-cn.com就是国内的镜像站。这时候有两个选择:

  1. 继续上网找镜像站,然后尝试(笔者最后采用的是该方法)

  2. 走代理(但笔者挂代理也请求不到资源,最后也没时间确认原因)


#3. 拉取「测试镜像hello-world」来测试一下(假设你已经解决了连接错误的问题):

sudo docker run hello-world		# 该命令先寻找本地的镜像,然后去镜像源寻找。找到后构建。

出现以下信息即成功:
在这里插入图片描述

如果这篇文章对您有些许帮助,请帮忙点个赞👍或收个藏📃。您的支持是我继续创作的动力💪!


不要害怕,不要着急。保持每日的前进☀️与积极的内心❤️,命运总在曲折中馈赠最好的礼物。


网站公告

今日签到

点亮在社区的每一天
去签到