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. 复制docker容器中的nginx某个文件到linux中

    前提:docker容器中的nginx要开启

  2. Java创建TXT文件并写入 内容

    public static void main(String[] args) { String filePath = "E:/" + "1.txt"; Stri ...

  3. Codeforces Round #789 (Div. 2) A-C

    Codeforces Round #789 (Div. 2) A-C A 题目 https://codeforces.com/problemset/problem/1677/A 题解 思路 知识点:模 ...

  4. 编写可维护的webpack配置

    为什么要构建配置抽离成npm包 通用性 业务开发者无需挂住配置 统一团队构建脚本 可维护性 构建配置合理的拆分 README文档, chan 构建配置管理的可选方案 通过多个配置管理不同环境的构建, ...

  5. 开源轻量级工作流WorkflowCore介绍

    在.Net Framework环境下,我们使用Windows Workflow Foundation(WF)作为项目的工作流引擎,可是.Net Core已经不支持WF了,需要为基于.Net Core的 ...

  6. 流程控制语句break

    break语句 用于结束循环结构,通常与分支结构if一起使用 即非正常循环,在中间循环的时候直接退出 注意break打断的是循环语句,不是if语句 注意while循环中一般需要有改变变量这个操作,否则 ...

  7. typescript中的esModuleInterop选项

    当没有加esModuleInterop时 库的代码: export const a = 1; export default function b() {} 生成代码 exports.__esModul ...

  8. 鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机

    鸟枪换炮,利用python3对球员做大数据降维(因子分析得分),为C罗找到合格僚机 原文转载自「刘悦的技术博客」https://v3u.cn/a_id_176 众所周知,尤文图斯需要一座欧冠奖杯,C罗 ...

  9. 当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(Divide-and-Conquer)

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_159 北京的疫情一波未平一波又起,由此看来,战"疫"将是一场旷日持久的战争,绝不能掉以轻心.轻易言胜.病毒随时 ...

  10. Auto.js 调用系统短信、电话

    本文所有教程及源码.软件仅为技术研究.不涉及计算机信息系统功能的删除.修改.增加.干扰,更不会影响计算机信息系统的正常运行.不得将代码用于非法用途,如侵立删! Auto.js 调用系统短信.电话 操作 ...