背景

这篇内容是之前给部门同事培训时写的文档,旨在传达一些docker相关概念,有个基本印象,当然,以下内容都来自网络,我只是个搬运工。具体操作在下篇文章中

一、什么是docker?

1. Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器
      2. 常用于:
          web应用的自动化打包和发布;
          自动化测试和持续集成、发布;
          在服务型环境中部署和调整数据库或其他的后台应用;
          从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境
      3.Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案

二、它与虚拟机有什么不同?

如上图:左图是虚拟机   右图docker

虚拟机: 每个虚拟机都包含应用程序,必要的二进制文件和库以及整个客户操作系统。

容器: 1.容器包括应用程序及其所有依赖项,但与其他容器共享内核,享有虚拟机的资源隔离和分配优势,更加便携和高效
            2.它们在主机操作系统的用户空间中作为独立进程运行

三、docker特点

  • 轻量:在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核
  • 兼容性:Docker 容器基于开放式标准,能够在所有主流 Linux 版本、Microsoft Windows 以及包括 VM、裸机服务器和云在内的任何基础服务设施上运行;
  • 安全:Docker 赋予应用隔离性,不仅仅限于彼此隔离,还独立于底层的基础设施

四、核心概念

  • 镜像(image):是一个只读模板,用来运行Docker容器,一个镜像可以创建很多容器
  • 容器(container):容器是从镜像创建的运行实例。负责应用程序的运行,它可以被启动、开始、停止、删除。每个容器都是相互隔离。可以把容器看做是一个简易版的 Linux 环境和运行在其中的应用程序。
  • 标签(tag):标记本地镜像,将其归入某一仓库。
  • 仓库(repository):集中存放镜像文件的场所,分为公开仓库(Public)和私有仓库(Private)最大的公开仓库是 Docker Hub,存放了数量庞大的镜像供用户下载,国内有网易云,阿里云
  • docker file:是文件指令集,用来说明如何自动创建Docker镜像。

五、Docker 工具箱

  • Docker 引擎:docker引擎是一个c/s结构的应用,主要组件如下图:

其中:1. Server是一个常驻进程    2. REST API 实现了client和server间的交互协议  3. CLI 实现容器和镜像的管理,为用户提供统一的操作界面

  • Docker Machine

docker官方提供的一个可以帮助我们在远程机器上安装docker的工具,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 docker。通过 docker-machine 来管理

  • Docker Registry(仓库注册服务器) 例1

专门用于存储和分发Docker镜像的开源应用程序。与仓库(repository)不严格区分,实际上Registry往往存放多个仓库

  • Docker Swarm  例2

Swarm是Docker官方提供的一款集群管理工具,其主要作用是把若干台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。

  • Docker Compose

例1
https://hub.docker.com/r/ermao0423/pentesttools/

例2

http://172.18.0.130:9396/#/containers

六、开始学习docker

  • 安装docker
  • 在Docker Hub上浏览镜像
  • 创建自己的镜像并运行它
  • 创建 Docker Hub 账户和镜像仓库
  • 创建一个自己的镜像(docker file)
  • 将你的镜像push到 Docker Hub 供他人使用

七、常用操作

  1. docker安装部署(官网自行下载或者参考菜鸟教程)
  2. DaoCloud可配置加速器,提升国内网络访问 Docker Hub 的速度
  3. 配置国内镜像源
  4. 查找镜像:docker search
  5. 获取镜像:docker pull
  6. 查看镜像列表:docker images
  7. 利用 Dockerfile 来创建镜像
  8. 上传镜像:docker push
  9. 启动容器:docker start
  10. 进入容器:docker exec
  11. 停止容器:docker stop
  12. 删除容器:docker rm
  13. 运行容器:docker run
  14. 查看容器列表:docker ps
  15. 删除镜像:docker rmi

docker官方学习网站: https://docs.docker.com/linux/started/

参考链接:http://www.cnblogs.com/SzeCheng/p/6822905.html

docker基础知识普及(一)的更多相关文章

  1. Docker03 Docker基础知识、Docker实战

    1 Docker基础知识 1.1 什么是Docker Docker是一个可以装应用的容器,就像杯子可以装水.书包可以装书一样:docker官网 Docker是Docker公司开发的,并开源到GitHu ...

  2. docker 基础知识分享ppt

    给团队做的docker基础分享ppt, 见下面的附件. https://files.cnblogs.com/files/harrychinese/docker_intro.pptx

  3. Docker基础知识及入门

    什么是Docker? Docker是由dotcloud公司使用golang语言进行开发的,基于Linux内核的 cgroup,namespace,以及OverlayFS类的Union FS等技术,对进 ...

  4. Vue.js 运行环境搭建详解(基于windows的手把手安装教学)及vue、node基础知识普及

    Vue.js 是一套构建用户界面的渐进式框架.他自身不是一个全能框架——只聚焦于视图层.因此它非常容易学习,非常容易与其它库或已有项目整合.在与相关工具和支持库一起使用时,Vue.js 也能完美地驱动 ...

  5. HTML第一课——基础知识普及【1】

    请关注公众号:自动化测试实战 HTML概念及编写规范 html叫做超本文标记语言,注意它知识标记语言,不是编程语言. 编写规范: 由标记(html, div, p, h1等)组成 标记成对出现(< ...

  6. 容器化之Docker小知识普及

    Docker确实是个好东西,相当于一个小型虚拟机,里面环境隔离只要有对应的镜像就能运行业务应用.运行基础应用.能跑数据库等等,还能跑linux等等. Docker 从狭义上来讲就是一个进程,从广义上来 ...

  7. 史上最全docker基础知识汇总

    正文 Docker常用命令 run docker run [OPTIONS] IMAGE [COMMAND] [ARG...] -e设置环境变量:-e username=zhj --name为容器指定 ...

  8. PJzhang:docker基础知识的2个疗程-one

    猫宁!!! 参考:http://virtual.51cto.com/art/201805/572135.htm https://www.cnblogs.com/rkit/p/9237696.html ...

  9. docker学习---docker基础知识

    目录 docker的基础 1.安装docker 2.使用镜像 3.镜像迁移|导入和导出 4.docker Hub介绍 5.搭建私有镜像仓库 5.1.docker开源的镜像分发工具--docker Re ...

随机推荐

  1. linux mint ubuntu 安装qq

    git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubuntu.gitcd deepin-wine-for-ubuntu./install.sh ...

  2. Pycharm开发环境设置与熟悉

    Pycharm开发环境设置与熟悉. 练习基本输入输出: print('你好,{}.'.format(name)) uprint(sys.argv) 库的使用方法: import ... from .. ...

  3. 《Redis高阶应用》讲座总结

    数据结构延展 常用数据结构:String,Hash,List,Set,Sorted Set(不聊这些) 高级数据结构:Bitmaps,hyperloglog,GEO 单机拓展到分布式 为什么要分区:性 ...

  4. php 获取网址参数

    echo "rewrite: ".$_GET["rewrite"]; echo "<br>SERVER_PORT: ".$_SE ...

  5. kubernetes资源配置之ReplicaSets

    什么是ReplicaSets? ReplicaSet的目的是维护在任何给定时间运行的稳定的副本Pod集. 因此,它通常用于保证指定数量的相同Pod的可用性 ReplicaSets怎么样工作? Repl ...

  6. Redis01——Redis产生背景

    Redis 产生背景 1.1.数据存储的发展史 1.1.1.磁盘时代 很久之前,我们的数据存储方式是磁盘存储,每个磁盘都有一个磁道.每个磁道有很多扇区,一个扇区接近512Byte. 磁盘的寻址速度是毫 ...

  7. shodan使用

    简介 与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道.Shodan可以说是一款“黑暗”谷歌,一刻不停的在寻找着所有和互联网关联的服务器.摄像头.打印机.路由器等等.每个月 ...

  8. SPOJ 1825 经过不超过K个黑点的树上最长路径 点分治

    每一次枚举到重心 按子树中的黑点数SORT一下 启发式合并 #include<cstdio> #include<cstring> #include<algorithm&g ...

  9. python 示例代码1

    第一章 python基础一 ​在此不再赘述为什么学习python这门编程,网上搜索一箩筐.我在此仅说一句python的好,用了你就会爱上它. 本python示例代码1000+带你由浅入深的了解pyth ...

  10. CSS——字体大小最常用的单位

    px (像素): 将像素的值赋予给你的文本.这是一个绝对单位, 它导致了在任何情况下,页面上的文本所计算出来的像素值都是一样的. ems: 1em 等于我们设计的当前元素的父元素上设置的字体大小 (更 ...