zoukankan      html  css  js  c++  java
  • Docker介绍

    一、Docker出现背景

    docker追求的问题/目标是什么?

    云计算兴起后,服务器硬件扩展非常便利,软件服务部署成为了瓶颈,docker趁势而兴。

    环境配置是十分的麻烦,每一个机器都要部署环境(集群Redis、ES、Hadoop...) 费时费力。

    二、Docker的历史

    2010年,几个搞it的年轻人,就在美国成立了一家公司 dotCloud,做一些 pass 的云计算服务!LXC有关的容器技术。

    他们将自己的技术 容器化技术 命名就是Docker!!

    因为公司经营不下去,开放源代码

    在容器技术开发出来之前,我们都是使用虚拟机技术!

    虚拟机:在window中装一个Vmware,通过这个软件我们可以虚拟出来一台或者多台电脑!笨重!

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

    Docker 是基于Go语言开发的!开源项目!

    Docker的文档是超级详细的

    三、docker能干嘛

    1、更快速的交付和部署

    传统:一堆帮助文档,安装程序

    docker:打包镜像发布测试,一键运行。

    2、更便捷的升级和扩缩容

    使用了Docker之后,我们部署应用就和搭积木一样!

    项目打包为一个镜像,扩展 服务器A!服务器B

    3、更简单的系统运维

    在容器化之后,我们的开发,测试环境都是高度一致的

    4、更高效的计算资源利用

    Docker是内核级别的虚拟化,可以在一个物理机上可以运行很多的容器实例!服务器的性能可以被压榨到极致。

    四、Docker安装

    镜像:image

    docker镜像就好比是一个模版,可以通过这个模版来创建容器服务,tomcat镜像====》run =====>tomcat01(提供服务)

    通过这个镜像可以创建多个容器(最终服务运行或者项目运行就是在容器中的)

    容器:container

    Docker利用容器技术,独立运行一个或者一个组应用,通过镜像来创建

    启动、停止、删除、基本命令!

    目前就可以把这个容器理解为就是一个简单的Linux系统。

    仓库:repository

    仓库就是存放镜像的地方!

    仓库分为公有仓库和私有仓库!

    Docker Hub (默认是国外的)

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

    (购买阿里云)

    docker run hello-world

    配置阿里云镜像加速:共四步
    sudo mkdir -p /etc/docker

    sudo tee /etc/docker/daemon.json << -'EOF'

    {

    "registry-mirrors":["https://qiyb9988.mirror.aliyun.com"]

    }

    EOF

    sudo systemctl daemon-reload

    sudo systemctl restart docker

    五、底层原理

    Docker是怎么工作的?

    Docker 是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过socket从客户端访问!

    DockerServer 接收到Docker-Client的指令,就会执行这个命令!

    Docker为什么比虚拟机块?

    1、Docker有着比虚拟机更少的抽象层

    2、Docker利用的是宿主机的内核,vm需要的是Guest OS.

    所以说,新建一个容器的时候,docker不需要像虚拟机一样重新加载一个操作系统内核,避免引导,虚拟机是加载 Guest OS,分钟级别的,

    而docker是利用宿主机的操作系统,省略了这个复杂的过程,秒级!

    六、Docker常用命令

    1、帮助命令

    docker version   显示docker版本信息
    
    docker info     显示docker的系统信息,包括镜像和容器的数量
    
    docker --help   帮助命令
    
    帮助文档命令:https://docs.docker.com/engine/reference/commandline/dockerd/

    2、镜像命令

    docker images

     解释:

    REPOSITORY   镜像的仓库源

    TAG       镜像的标签

    IMAGE ID      镜像的id

    CREATED     镜像的创建时间

    SIZE      镜像的大小

     

    #可选项 

    -a  --all  列出所有镜像

    -q  --quiet  只显示镜像的id

    docker images

    docker search mysql 搜索镜像
    # 可选项 通过收藏来过滤
    --filter=STARS=3000

    docker pull mysql 下载最新的mysql
    docker pull mysql:5.7

     docker rmi -f d1165f221234  删除镜像 根据镜像id来删除

    3、容器命令

    说明:我们有了镜像才可以创建容器,linux,下载一个centos镜像来测试学习
    docker pull centos
    新建容器,并启动
    docker run [可选参数] image
    #参数说明
    --name="Name" 容器名字 tomcat01 tomcat02 用来区分容器
    -d   后台方式运行
    -it  使用交互方式运行,进入容器查看内容
    -p  指定容器的端口 -p 8080:8080
    -p  随机指定端口

    docker ps

  • 相关阅读:
    拓端tecdat|R语言JAGS贝叶斯回归模型分析博士生延期毕业完成论文时间
    拓端tecdat|数据感知游客的森林公园游憩需求
    空间100%
    uniq -c 去掉重复行
    工作中实用的Shell脚本实例
    Linux下如何解压和压缩rar格式的包
    LRM-00109: could not open parameter file
    Xmanager5 Passive oracle图形化界面出来之后鼠标点不了
    谷歌浏览器请求返回JSON内容自动格式化
    JENKINS中创建全局变量并在JOB中使用
  • 原文地址:https://www.cnblogs.com/ssqq5200936/p/10859450.html
Copyright © 2011-2022 走看看