01 Docker概述
Docker概述
Doker 容器技术,是一种虚拟化技术,虚拟机也是属于虚拟化技术
Docker 隔离,镜像(最核心的环境 4m+ jdk + mysql )十分的小巧,秒级启动
vm, linux centos原生镜像(一个电脑!)隔离,需要开启多个虚拟机,几个G
Docker的相关文档:前言 - Docker —— 从入门到实践 (gitbook.io)
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。
比较 Docker 和 虚拟机技术的不同:
- 传统虚拟机,虚拟出一条硬件,运行一个完整的操作系统,然后在这个系统上安装和运行软件
- 容器内的应用直接运行在 宿主机的内核中,容器是没有自己的内核,也没有虚拟我们的硬件,所以就轻便了
- 每个容器内是互相隔离的,每个容器都有一个自己的文件系统,互不影响
DevOps(开发,运维)
应用更快速的交付和部署
传统:一堆帮助文档,安装程序
Docker:打包镜像发布测试,一键运行
更便捷的升级和扩缩容
使用Docker 之后,我们部署应用和搭积木一样
项目打包为一个镜像,扩展 服务器A 服务器B
更简单的系统运维
在容器化之后,我们的开发,测试环境都是高度一致的
更高效的计算机资源利用
Docker是内核级别的虚拟化,可以在一个机器上可以运行很多的容器实例!服务器的性能可以被压榨到极致
Docker 安装
Docker的基本组成
镜像(image):
Docker 镜像 是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)
docker镜像就好比是一个模板,可以通过这个模板创建容器服务,tomcat镜像=>run=>tomcat01容器(提供服务器),通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)
容器(container):
Docker 利用 容器技术,独立运行一个过着一组应用,通过镜像来创建的。镜像是静态的定义,容器是镜像运行时的实体。
容器可以启动,停止,删除,基本命令!
目前就可以把这个容器理解为就是一个简易的linux系统,项目
仓库(repository):
仓库就是存放镜像的地方!
仓库分为公有仓库和私有仓库!
Docker Hub(默认是国外的)
阿里云都有容器服务器(配置镜像加速!)
安装
环境准备
- 需要会一点点的 Linux的基础
- CentOS7
- 使用 XShell 连接远程服务器进行操作
帮助文档:
安装
# 1、卸载旧的版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
#2、需要的安装包
yum install -y yum-utils
#3、设置镜像的仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo #默认是从国外的
# 推荐使用阿里云的镜像
yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 更新yum软件包索引
yum makecache fast #centos8 不用加fast
#4、安装 docker相关的 docker-ce 社区版 ee 企业版
yum install docker-ce docker-ce-cli containerd.io
#5、启动 docker
systemctl start docker
#6、使用docker version 是否安装成功
# 7、
docker run hello-world
8、查看一下下载的这个 hello-world 镜像
[root@vdevops /]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest feb5d9fea6a5 2 months ago 13.3kB
阿里云镜像加速
配置使用
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://0enfyjgl.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
Run的流程
底层原理
Docker是怎么工作的
Docker 是一个 Client - Server 结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!
DockerServer 接收到 Docker-Client 的指令,就会执行这个命令
Docker 为什么比 虚拟机快
1、Docker 有着比虚拟机更少的抽象层
2、docker 利用的是宿主机的内核,vm 需要是 Guest OS
新建一个容器的时候,docker不需要和虚拟机一样重新加载一个操作系统内核,避免引导
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)