当前位置: 首页 > web >正文

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

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		# 该命令先寻找本地的镜像,然后去镜像源寻找。找到后构建。

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

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


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

http://www.xdnf.cn/news/4443.html

相关文章:

  • SQL Server To Paimon Demo by Flink standalone cluster mode
  • 力扣1812题解
  • 二叉树的遍历与构造
  • 性能优化-初识(C++)
  • 国产ADS1296兼容类比代替芯片——LHE7906
  • 滑动窗口——无重复字符最长的字串
  • 分布式-基于数据库排他锁
  • 文章记单词 | 第69篇(六级)
  • windows安装micromamba
  • SimpleMindMap:一个支持AI的思维导图软件
  • 电能质量监测A级与S级的区别详解
  • LVS中的DR模式,直接路由模式
  • 大模型Agent技术全景解析:架构演进、场景适配与关键技术拆解
  • 2025ISCC练武校级赛部分题解WP
  • Flink + Kafka 数据血缘追踪与审计机制实战
  • LeetCode383_赎金信
  • Mac中Docker下载与安装
  • [学习]RTKLib详解:ppp.c与ppp_ar.c
  • 如何保证Kafka生产者的消息顺序性? (单分区内有序,需确保同一Key的消息发送到同一分区)
  • 网站网页经常 400 错误,清缓存后就好了的原因剖析
  • 【JMeter技巧】GET请求如何传递Body参数?版本兼容性详解场景需求
  • 风车 AI 翻译如何免费解决跨境电商图片翻译难题
  • 机器学习——逻辑回归ROC练习
  • Milvus 向量数据库详解与实践指南
  • OSCP - Proving Grounds - Sumo
  • powershell批处理——io校验
  • 力扣刷题Day 37:LRU 缓存(146)
  • 7系列 之 ISERDESE2
  • 准确---Typora配置Gitee图床并实现自动图片上传
  • 【上位机——MFC】序列化机制