Docker简介|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习Docker简介

开发者学堂课程【SpringBoot快速掌握 - 核心技术:Docker简介】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/612/detail/9265


Docker简介

一、何为Docker ?

Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0 协议开源。Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。

容器是完全使用沙箱机制,相互之间不会有任何接口,更重要的是容器性能开销极低。

Docker 支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的这个镜像称为容器,容器启动是非常快速的。类似 windows 里面的 ghost 操作系统,安装好后什么都有了;

Docker 是一个开源的应用容器引擎也类似以前了解的虚拟机技术,Docker 不是一个虚拟机,他是一个轻量级容器技术,他却实现了虚拟机技术里边的资源隔离。而且他的性能是要远远高于以前用的虚拟机的。以前要启动一个虚拟机,可能需要几分钟,而要启动一个 Docker 容器,几秒就完了,甚至于毫秒级别都能启动,那么 Docker 的产生背景,她的用途,可以通过一个现实中的一个例子。

image.png

 

假设张三要给他的电脑到换系统,他可以从微软的官方来下载,来下载 windows 的原生系统。原来系统是纯净版的,也没有驱动,也没有常用软件,张三就把相关的驱动安装完,把常用软件,比如 QQ,word 包括迅雷下载等等很多安装,安装完以后就能用了。但是如果李四也要装系统,那么他也用这种方式,把纯净版的 windows 系统拿来,驱动软件都没装,他也得安装驱动装软件。现在就有一种东西叫 Windows 镜像系统。镜像系统就是说张三把它的 windows 系统,然后它把里边的这些驱动常用软件都装好之后把整个一套东西打包成一个 Windows 镜像系统。这样别人要装系统时,拿到这个镜像系统装,所以张三里边原来他装的那些软件,别人也就有了,包括它配置好的东西,别人也都可以配置好的。这就是装 windows  镜像系统,而 docker 就类似于这种镜像的机制,虽然他跟这个 windows 版的镜像系统,它完全不是一个东西。而他们的思路是一样的,比如说,在开发和运维的过程中,经常让他给的服务器上来装各种各样的环境,比如要 linux 的服务器上要装 mysql 环境,要装 redis 或者 tomcat 等等。以前如何给 linux 的服务器上来装该系统,装这些软件环境。比如装 mysql 去 mysql 的官网下载 mysql 的安装包,比如 redis 要安装,或者 redis 的安装,这里都需要做很多在 linux 服务器上的环境,但是如果 mysql 在其他服务器也需要安装,也从官方下载在进行一大堆配置,这样就太麻烦了,这个时候 docker 相反,他可以支持安装配置好的软件打包成一个镜像,比如 mysql 在之前安装好可以打包成一个镜像,此时如果别人如果想在她的服务器在 linux 安装时,只要她的 linux 服务器安装了 docker,这个 docker 直接把之前打包好的镜像在服务器运行镜像就行,只要镜像运行,就认为运行起来的这个镜像称为一个容器,比如买 mysql 镜像,运行起来就有 mysql ,就是在他的 mysql 容器中运行。之后打包 redis 镜像来,在别的服务器运行起来,那就是他在自己的软 redis 服务器里面运行。每一个容器各容器之间也有沙箱的这种隔离机制也是非常好的,这样如果想要在其他的服务器里边,在要装 mysql 或者 redis 环境的时候,只需要装一次打包好镜像,在其他服务器里边儿运行镜像就就行了,就不用在每一个服务器里边儿都安装。这就是我 docker 能给带来的非常大的好处,也就是说 docker 的核心就是和支持将这些软件编译成一个镜像,然后再镜像中,可以把软件做好各种配置发布出去,别人就能直接使用这个镜像就行,别人不需要做一大堆配置。然后把这个镜像直接启动起来,运行中的就是镜像能成为的容器,而这个容器的启动是非常快的,容器是秒甚至毫秒级别的,而不像之前的虚拟机,然后再拿个训机让我装 mysql 。

image.png

这个是 docker  的 logo 标志,小鲸鱼加集装箱,代表了容器,各种平台也都支持 docker 的容器技术,所以有必要将他学好,后面为了降低对 linux 操作的难度,只需要记少量的 docker 命令就可以了。

相关文章
|
4月前
|
Kubernetes Ubuntu Linux
docker学习笔记
docker学习笔记
53 0
|
2月前
|
安全 网络安全 开发者
Docker学习笔记(一):Docker命令总结
本文介绍了Docker的基本概念、优点以及常用命令。Docker是一个开源的应用容器引擎,它通过容器打包应用程序及其依赖项,实现快速部署和迁移。主要优点包括轻量级、可移植性、易于管理、安全性和开源性。文章还区分了镜像和容器的概念,并提供了构建镜像、查看容器、运行容器、停止和删除容器等常用Docker命令的示例。
147 0
|
3月前
|
Docker Windows Python
Windows-Docker学习笔记(一)
本文介绍了Windows环境下Docker的安装与使用方法。首先通过链接下载Windows版本的Docker,然后按步骤配置:启用Windows功能、设置默认WSL版本为2,并检查Docker及其组件是否正常工作。接着详细列出了Docker的基础命令及其用法,包括搜索、下载镜像、管理容器等。同时介绍了Dockerfile的编写方法及其构建过程,以及docker-compose.yml文件的用途。最后提供了运行和管理容器的具体示例。
Windows-Docker学习笔记(一)
|
3月前
|
存储 Linux Docker
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
关于如何在CentOS 7.6上安装Docker、介绍Docker存储引擎以及服务进程关系的实战案例。
166 3
CentOS 7.6安装Docker实战案例及存储引擎和服务进程简介
|
3月前
|
存储 Unix 虚拟化
Docker容器简介
Docker是一种轻量级的虚拟化技术,它通过容器化应用,提高了硬件资源利用率,简化了应用的部署、运输和运行,且与虚拟机相比,具有更快的交付速度和更低的资源消耗。
57 2
|
4月前
|
前端开发 jenkins 持续交付
jenkins学习笔记之二十:docker in docker运行pipeline
jenkins学习笔记之二十:docker in docker运行pipeline
|
4月前
|
jenkins Java 持续交付
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
jenkins学习笔记之十九:Docker安装jenkins master及动、静态配置slave
|
5月前
|
存储 Linux 虚拟化
docker 简介
docker 简介
53 6
|
5月前
|
Java Linux 虚拟化
docker(一):docker简介
docker(一):docker简介
42 1
|
7月前
|
Linux 应用服务中间件 nginx
docker 网络简介
docker 网络简介