1、什么是Docker

  Docker 是一个基于Go 语言并遵从Apache2.0协议开源的、轻量级的容器引擎,主要运行于 Linux 和 Windows,用于创建、管理和编排容器。可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的服务器上。

  Docker的主要目标是Build, Ship and Run Any App, Anywhere,也就是通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的APP(可以是一个WEB应用或数据库应用等等)及其运行环境做到一次封装,到处运行。是一个有助于做持续集成和整体发布的容器虚拟化技术。

2、Docker为什么会出现

  一款产品从开发到上线,从操作系统,到运行环境,再到应用配置。作为开发+运维之间的协作我们需要关心很多东西,这也是很多互联网公司都不得不面对的问题,特别是各种版本的迭代之后,不同版本环境的兼容,对运维人员来说都是极大的考验。

  以传统的部署方式来说,软件编码开发/测试结束后,所产出的成果即是程序或是能够编译执行的二进制字节码等。而为了让这些程序可以顺利执行,开发团队需要准备完整的部署文件,编写部署文档,说明所需要使用的全部配置文件和相关的软件环境,让运维团队得以部署应用程序。不过,即便如此,仍然会发生部署失败的状况。

  而Docker镜像的设计,使得Docker得以打破过去程序即应用的观念,将包括系统核心在内,运行应用程序所需要的系统环境,由下而上打包成一个镜像(image)文件,使应用程序可以在各个平台间无缝接轨运行,即一次封装,到处运行

3、Docker 和传统虚拟机技术的不同

  • 传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;

  • 而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。

  • 每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分各自的计算资源。

4、安装Docker

  • 安装流程已在下方
#1、安装依赖包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
#2、设置阿里云镜像源
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
#3、安装docker-ce
sudo yum install docker-ce
#4、设置开机自启
sudo systemctl enable docker
#5、启动docker服务
sudo systemctl start docker
#6、配置镜像加速
#(1)创建/etc/docker文件夹
sudo mkdir -p /etc/docker
#(2)创建/etc/docker/daemon.json文件
vim /etc/docker/daemon.json #如果文件不存在会新建
#添加内容
{
"registry-mirrors": ["你的镜像加速地址"]
}
#(3)加载配置
sudo systemctl daemon-reload
#(4)重启docker
sudo systemctl restart docker
#7、查看docker状态
sudo systemctl status docker
#8、停止docker
sudo systemctl stop docker
  • 在配置镜像加速的时候,有以下镜像加速地址(建议使用阿里云或网易镜像加速地址):

    (1)官方镜像:https://registry.docker-cn.com

    (2)网易镜像:http://hub-mirror.c.163.com

    (3)清华大学:https://mirrors.tuna.tsinghua.edu.cn/

    (4)搜狐镜像:http://mirrors.sohu.com/

    (5)阿里镜像:阿里镜像加速地址需要登录阿里云控制台获取,每个账号有唯一镜像加速地址。在控制台--->镜像容器服务--->镜像中心:镜像加速服务中获取。

  • 在第七步查看Docker运行状态时,看到以下控制台打印,即表示安装成功。

5、永远的HelloWorld

  • 安装好了之后,通过一个HelloWorld实例来体验一下Docker的神奇之处。

    这里我们使用Docker命令运行HelloWorld实例:docker run hello-world

  • 此时我们不禁思考,我们本机又没有hello-world这个程序,为什么能直接使用docker run这个命令去直接运行呢?别急,接下来给大家详细分析一下,docker run都做了什么。

6、docker run做了什么

  在Docker中,docker run是一个非常重要的命令,主要功能是启动程序。下面通过为大家详细分析run做了什么。

  总体来说,docker run的执行流程基本就是这样的,对于有不同理解的欢迎各位大佬探讨和指正。

这期分享主要是初步介绍和认识Docker,并进行安装和实际操作。

适合新人对docker有个初步的了解和认识。

我们下期见!!!

Docker(一):初识的更多相关文章

  1. Docker大行其道—初识

    导读 随着分布式.云计算.大数据的火热爆发,大量的云计算集群出现,光凭计算机硬件配置的已经无法再次一较高下,虚拟化成为其中最核心的技术.虚拟化既可以通过硬件模拟,也可以通过操作系统层面去实现,近年来热 ...

  2. Docker之初识(一)

    1.简介 今年四月份公司逐步改用docker容器来部署应用,当时自己刚踏出学校大门,平时开发都是环境都是早已安装好,因此一直没怎么了解Docker这玩意.公司里各位开发大佬说这是个好东西,可以很方便的 ...

  3. 41 【docker】初识

    常用的docker命令: docker ps #查看当前正在运行的容器 docker ps -a | grep <keyword> #查看所有的容器,运行的或者停止的 docker sto ...

  4. docker从初识到深入

    1:使用docker有哪些优势: 更快交付你的应用(Faster delivery of your applications) 让部署和测试更简单(Deploying and scaling more ...

  5. docker 概念初识

    1 docker 优势,一次创建或配置可以在任意时间.任意环境让应用正常的运行. 快速交付和部署,开发人员可以使用镜像快速构建一套标准的开发环境:开发完后测试和运维人员可以直接使用相同的环境来部署代码 ...

  6. 【Docker】初识与应用场景认知

    什么是Docker? Docker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行. 什么是Docker容器? Docker容器包括应用程 ...

  7. Docker 学习应用篇之一: 初识Docker

    Docker 自从2013年以来就非常的火热,无论是从github上的代码活跃度,还是Redhat在RHE6.5中集成对Docker的支持,等等.第一次接触Docker,还是老师给我们介绍的. 1.初 ...

  8. Docker 第一篇--初识docker

    已经多年不写博客, 看完<晓松奇谈>最后一期猛然觉醒, 决定仔细梳理下自己这几年的知识脉络. 既然决定写, 那么首先就从最近2年热门的开源项目Docker开始.Docker 这两年在国内很 ...

  9. 初识Docker和Windows Server容器

    概览 伴随着Windows Server 2016 Technical Preview 3 (TP3)版本的发布,微软首次提供了Windows平台下地原生容器.它集成了Docker对Windows S ...

  10. docker-1 初识docker

    五分钟认识docker 什么是docker? 把他想象成一个用了一种新颖方式实现的超轻量虚拟机,在大概效果上也是正确的.当然在实现的原理和应用上还是和VM有巨大差别的,并且专业的叫法是应用容器(App ...

随机推荐

  1. React技巧之表单提交获取input值

    正文从这开始~ 总览 在React中,通过表单提交获得input的值: 在state变量中存储输入控件的值. 在form表单上设置onSubmit属性. 在handleSubmit函数中访问输入控件的 ...

  2. 鹏城杯 WEB_WP

    简单的PHP GET /?code=[~%8C%86%8C%8B%9A%92][~%CF]([~%9A%91%9B][~%CF]([~%98%9A%8B%9E%93%93%97%9A%9E%9B%9A ...

  3. 【C++】学生管理系统

    [C++]学生管理系统 一道非常经典的C语言题目,用C++实现   题目如下: 输入功能:由键盘输入10个学生的学号.姓名.三科成绩,并计算出平均成绩和总成绩,然后将它存入文件stud.dat. 插入 ...

  4. 提名 Apache ShardingSphere Committer,说说方法

    文章首发在公众号(龙台的技术笔记),之后同步到博客园和个人网站:xiaomage.info 就在前几天,收到了 Apache ShardingSphere Vote 我成为 Committer 的邮件 ...

  5. 【Python爬虫技巧】快速格式化请求头Request Headers

    你好,我是 @马哥python说 . 我们在写爬虫时,经常遇到这种问题,从目标网站把请求头复制下来,粘贴到爬虫代码里,需要一点一点修改格式,因为复制的是字符串string格式,请求头需要用字典dict ...

  6. 绿色安装MySQL5.7版本----配置my.ini文件注意事项

    前言 由于前段时间电脑重装,虽然很多软件不在C盘,但是由于很多注册表以及关联文件被删除,很多软件还需要重新配置甚至卸载重装. 使用MySQL时就遇到了这种情况,在修改配置文件无效的情况下选择了重新安装 ...

  7. 【C++】从设计原理来看string类

    1.一些C++基础知识 模板类string的设计属于底层,其中运用到了很多C++的编程技巧,比如模板.迭代器.友元.函数和运算符重载.内联等等,为了便于后续理解string类,这里先对涉及到的概念做个 ...

  8. Nginx第三方模块Ngx-dyups安装过程

    Ngx-dyups是什么,能干什么 它是一个Nginx第三方动态Upstream配置模块,可以实现在不重启Nginx情况下动态更新反向代理Upstream表.该模块由淘宝开发团队维护,淘宝自家的Ten ...

  9. 算法竞赛进阶指南0x41并查集

    并查集简介 并查集的两类操作: Get 查询任意一个元素是属于哪一个集合. Merge 把两个集合合并在一起. 基本思想:找到代表元. 注意有两种方法: 使用一个固定的值(查询方便,但是在合并的时候需 ...

  10. 算法-买卖股票的最佳时机II

    01.题目分析 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格.你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票. ...