zoukankan      html  css  js  c++  java
  • Docker是干什么用的?

    长话短说,这里我就不对docker进行系统的介绍说明了,网上很多介绍文章,我想新手的话可以先网上大概了解一下docker的基本概念。有一个模糊的、大概的感觉就行了。多看资料文档,有百利而无一害。

    Docker不是虚拟机

    很多人一开始学习Docker的时候,感觉Docker很像虚拟机,误以为Docker就是虚拟机。其实Docker不是虚拟机!这个千万不要搞错了!先记下这个硬性结果,后续真正搞环境搭建、项目部署的时候,就会明白了~不要着急,也不用担心_

    对Docker有一个感官的感受吧

    比如公司买了一台新服务器,系统是centos,你要想把项目部署到服务器上,而且项目中使用到了mysql、redis、activemq、zookeeper等技术,要想项目能在服务器上正常运行,必须在新的服务器上搭建好mysql、redis、activemq、zookeeper服务环境。这样的话,在环境搭建和配置上就要花费太多的时间了(因为需要配置很多的配置文件、需要手动启动服务等)。

    又或者每次重装一次系统或者换一个机器,你就要把环境重装一次,东西越多花费的时间越多、很麻烦、浪费时间和精力。

    而使用Docker的话,你只需要一条命令,你就可以在你的centos系统上运行你需要的软件,比如mysql、tomcat、jdk、redis等。

    光文字介绍,无法直观的感受到docker的强大之处,那就举两个例子看看吧~

    【示例1】:Docker上安装mysql

    • 你需要MySQL服务,那么在docker中通过简单的命令就可以安装一个MySQL数据库服务:
    docker pull mysql
    

    哇!mysql就这样安装好了? my god!太简单快捷了吧!

    那如何启动mysql呢?命令如下:

    docker run -d -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 mysql
    

    很简单吧,一个mysql服务就启动完成了,就可以正常使用了。可以通过mysql客户端(Navicat、DataGrip等)连接这个mysql数据库。

    目前你可以不用去知道具体的命令以及参数的含义,感官上感觉一下docker的强大就行了。后面具体的环境部署搭建会详细说明。

    【示例2】:Docker上安装jdk

    • 你需要JDK环境,那么在Docker中通过简单的命令安装一个JDK的镜像, 然后通过一条命令启动这个容器就行了,容器会自动给你安装配置好JDK环境。

    同样的,一条命令就可以完成:

    docker pull java
    

    就这么简单的一条命令,JDK就安装好了。你可以在Docker容器的命令行中通过java -version来检测jdk是否安装成功。

    镜像、容器

    对于新手而言,或许有点不明白镜像和容器分别是个什么东东,还是有点不明白。

    你可以这样感官的理解:

    镜像 —— 相当于ISO操作系统的安装包,ISO镜像的内容是固定的,不会发生改变,可以重复使用。

    容器 —— 类似于使用 ISO镜像安装的新的操作系统,可以使用一个相同的ISO镜像,安装很多操作系统。

    你也可以制作属于自己的镜像哦

    你可以在某个Docker镜像的基础之上,对Docker容器进行修改。比如添加了一些你自己的软件或修改一些配置文件,然后执行commit命令,这样你就把这个容器制作成了一个新的镜像(也就是自定义镜像),以后你就可以用这个镜像创建出N个一模一样环境的容器。

    比如你要学习搭载Redis集群,那么你可以下载一个Redis的镜像,然后启动容器,进入这个容器的文件系统里面,在这个容器里面把redis集群的配置都设置好后,然后通过commit命令提交这个容器生成新的镜像,以后就可以使用这个镜像运行出更多的redis集群环境的容器了,而且环境也都是一模一样的,就无需再去从头搭建redis集群环境了。

    具体的环境搭建,这里不做过多的说明,后面会讲解。

    Docker占用的资源很小。启动一个容器一般都是秒级的。

    Docker的优缺点

    这里不多做描述,随着学习后面的Docker容器启动、项目部署等教程,你自然就会感受到Docker的优势以及存在的不足。

    当然,你也可以自行网上查询资料学习。

    欢迎加我QQ交流学习!

  • 相关阅读:
    内存可用性判断 IsBadCodePtr IsBadReadPtr 等等
    部署到Linux使用VS Code 开发.NET Core 应用程序
    Gulp.js简介
    net WebApi中使用swagger
    深入理解
    软件框架
    重拾linux
    Linux创建修改删除用户和组
    Linux 之 rsyslog
    Lua 解释器
  • 原文地址:https://www.cnblogs.com/zhaokejin/p/15605193.html
Copyright © 2011-2022 走看看