01 Docker概述

Docker概述

Doker 容器技术,是一种虚拟化技术,虚拟机也是属于虚拟化技术

Docker 隔离,镜像(最核心的环境 4m+ jdk + mysql )十分的小巧,秒级启动

vm, linux centos原生镜像(一个电脑!)隔离,需要开启多个虚拟机,几个G

官网:https://docs.docker.com/

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(默认是国外的)

阿里云都有容器服务器(配置镜像加速!)

安装

环境准备

  1. 需要会一点点的 Linux的基础
  2. CentOS7
  3. 使用 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不需要和虚拟机一样重新加载一个操作系统内核,避免引导

posted @   flypiggg  阅读(44)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示