目录
(持续更新中,目前发布日期:2024.12.28日编写,将预计明天继续完善发布,日期动态调整)
介绍
Docker 是一个开源的应用容器引擎,它允许开发者将应用程序及其所有依赖项打包到一个轻量级的、可移植的容器中,从而实现快速部署和环境一致性。
Docker的核心概念包括容器、镜像和仓库。容器是Docker的核心,它是一种轻量级、可执行的独立软件包,包含应用运行所需的一切要素。镜像是一个只读的模板,包含了运行某个软件所需要的所有内容。仓库用于存储和分发镜像,类似于Git的代码仓库。
Docker的主要优势包括快速启动、轻量化、可移植性和隔离性。与传统的虚拟机相比,Docker容器可以在几秒钟内启动,而传统虚拟机需要几分钟的时间。Docker容器利用宿主机的操作系统内核,与宿主机共享资源,因此比传统的虚拟机更轻量化。此外,Docker容器提供了强大的隔离性,不同容器之间互相隔离,互不干扰,保证了应用程序的安全性和稳定性。
Docker的使用场景非常广泛,包括开发环境、应用程序部署、微服务架构、持续集成/持续部署(CI/CD)、混合云/多云管理和边缘计算等。它为开发团队提供了一个一致的开发环境,简化了应用程序的部署过程,并且是微服务架构的理想选择。Docker与CI/CD工具紧密集成,实现自动化的构建、测试和部署流程。此外,Docker还为混合云/多云策略提供一个统一的抽象层,简化多云管理并提高应用程序的可移植性。
欸欸欸!!打住,不能再介绍这么多了,哈哈哈,接下来带大家一起跟我学习docker技术吧!
先介绍一下 大家都在用的一些 docker 版本吧
Docker 用途
Docker是一个开放源代码的应用容器引擎,能够自动化部署应用封装到一个程序库打包的一部分,然后在任何所选的系统上发布。
Docker可以用于以下几种情况:
-
快速部署应用:使用Docker,开发者可以在标准化的环境中运行自己的应用,从而避免了“它在我的机器上可以运行”的问题。
-
运行应用协议/中间件:Docker可以用于运行应用协议和中间件,例如数据库、消息队列等。
-
创建微服务架构:Docker可以帮助开发者更容易地创建微服务架构,每个服务都在自己的容器中运行。
-
PaaS服务:Docker也被用于创建PaaS(平台即服务),例如Dokku、Deis和Heroku等。
-
IoT设备:Docker也可以在嵌入式设备上运行,例如在一个ARM设备上运行Docker。
Docker的核心概念包括:
-
镜像(Image):Docker镜像是一个只读的模板,用来创建Docker容器。
-
容器(Container):容器是从Docker镜像启动的实例,在容器中可以运行应用。
-
仓库(Repository):Docker仓库用于保存镜像,可以是公有或者私有。
-
注册中心(Registry):Docker注册中心是一个保存Docker镜像的服务,可以是公有或私有。
抽象理解
想象你是一名厨师,想要在不同的餐厅(不同的计算环境)提供相同的美味佳肴(应用程序)
传统方式(不使用Docker):
- 每次你要去一个新的餐厅,你都需要重新购买所有的食材(依赖项)、厨具(运行时环境)和调料(配置文件),并且按照相同的食谱(代码)来烹饪菜肴。这个过程既费时又费力,而且可能因为食材、厨具或调料的不同而导致菜肴的味道有所差异。
使用Docker的方式:
- 你首先在一个“中央厨房”(开发环境)里,按照你的食谱(代码)和所需的所有食材、厨具、调料(依赖项、运行时环境、配置文件)烹饪出一道完美的菜肴。
- 然后,你使用Docker将这个菜肴及其所有相关的东西(食材、厨具、调料)打包成一个“便当盒”(容器)。
- 这个便当盒是一个标准化的单元,无论你在哪里打开它(在不同的餐厅或计算环境),里面的菜肴(应用程序)都会保持相同的味道(行为),因为你已经把所有需要的东西都封装在里面了。
- 当你想要在不同的餐厅提供这道菜肴时,你只需要带着这个便当盒过去,打开它,就可以立即享用到美味了。而且,这个便当盒是轻量级的,不会占用太多的空间或资源。
Docker 版本
docker-ce和docker.io的主要区别在于维护者、依赖管理方式和安装方式。
-
维护者:
- docker-ce是由Docker官方维护的。
- docker.io是由Debian团队维护的。
- docker-ee 是售后团队和技术团队提供技术支持的。
-
依赖管理方式:
- docker.io采用apt的方式管理依赖。
- docker-ce使用go的方式管理依赖,并且会自己管理所有的依赖。
-
安装方式:
- 安装docker.io时,可以使用apt命令:
sudo apt install docker.io
。 - 安装docker-ce则需要通过Docker的官方仓库或GitHub等平台下载源代码,自行构建和定制:
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -sudo add-apt-repository "deb [arch=amd64] https://mirrors.ustc.edu.cn/docker-ce/linux/ubuntu $(lsb_release -cs) stable"sudo apt-get update sudo apt-get install docker-ce
。
- 安装docker.io时,可以使用apt命令:
此外,Docker的发布版本分为Stable(稳定)版 和 Edge(测试)版
安装依赖包
sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common gnupg-agent lsb-release
添加Docker官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
换成阿里云的密钥[可选]
curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
配置稳定仓库
Docker 官方中国区: https://registry.docker-cn.com
网易: http://hub-mirror.c.163.com
中科大: https://docker.mirrors.ustc.edu.cn
换成阿里云的目的是为了更加稳定,高速下载
设置Docker官网稳定仓库
# stable(稳定版)
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# 或者
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) 稳定版"
设置阿里云的稳定仓库
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
安装 Docker CE
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
补充:有些人会问,诶!筱沐,我安装的是docker-ce,为什么还要安装额外的脚手架(cli)+io??
其实呢,在安装docker-ce
时,你需要执行sudo apt-get update
和sudo apt-get install docker-ce docker-ce-cli containerd.io
等命令,主要是为了确保你的系统软件包是最新的,并且能够正确安装Docker及其相关组件。
sudo apt-get install docker-ce docker-ce-cli containerd.io
命令用于安装Docker社区版(docker-ce
)、Docker命令行界面(docker-ce-cli
)以及containerd.io
。
docker-ce
是Docker的社区版,包含了Docker引擎和基本的Docker工具;
docker-ce-cli
提供了Docker的命令行界面,允许你通过命令行与Docker进行交互;
containerd.io
是一个容器运行时,负责管理容器的生命周期。
验证Docker CE是否安装成功
启动服务
sudo systemctl start docker
先检查状态
sudo systemctl status docker
开机自启动
sudo systemctl enable docker
检查版本
docker -v
卸载
sudo apt-get remove docker docker-engine docker.io containerd runc
设置代理
代理位置
sudo vi /etc/docker/daemon.json
代理网站
国内镜像
- https://registry.docker-cn.com
- http://hub-mirror.c.163.com
- https://docker.mirrors.ustc.edu.cn (中国科学技术大学镜像)
- https://dockerhub.azk8s.cn
- https://mirror.ccs.tencentyun.com (腾讯云镜像)
- https://registry.cn-hangzhou.aliyuncs.com (阿里云镜像)
这些镜像源都是国内比较知名且常用的Docker镜像加速器,可以显著提高Docker镜像的拉取速度。
其他镜像
- https://docker.1panel.live
- https://atomhub.openatom.cn/
- https://hub.uuuadc.top
错误代理格式
很多人格式是写成这样的,但就会报错因为格式不是这样的
--------------------------------------------------------------------------------------------------------------------------------
正确代理格式
{
"registry-mirrors": ["https://xxxx.xxx.xxx.xx:port"]
}
(到底啦)
( 持续更新中.....接下来会写 创建镜像,容器,部署等)