本文简单的介绍了一下docker的一些优点,以及使用方法
1. 理解docker
  1.1 docker是什么?
  1.2 为什么要使用Docker?
2. docker安装
3. docker-容器,镜像,仓库,dockerfile,docker-compose
4. 快速入门
  4.0. 常用命令
 
1. 理解docker
1.1 docker是什么?
看看官方概念:
  Docker 是一个开源的应用容器引擎,你可以将其理解为一个轻量级的虚拟机,开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。
这里我们来点通俗的:
  比如:一台机器上,运行了3个docker, 每个docker里面分别运行着nginx,php和mysql。你想把这台机器上的nginx,php和mysql部署到另外10台机器。直接执行一系列docker命令就可以了,是不是很
  简单?
那么,就凭这一点,你已经很想学docker了吧!
 
1.2 为什么要使用Docker?
  作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。
1.2.1 更高效的利用系统资源
  由于容器不需要进行硬件虚拟以及运行完整操作系统等额外开销,Docker对系统资源的利用率更高。无论是应用执行速度、内存损耗或者文件存储速度,都要比传统虚拟机技术更高效。因此,相比虚拟机技术,一个相
  同配置的主机,往往可以运行更多数量的应用。
1.2.2 更快速的启动时间
  传统的虚拟机技术启动应用服务往往需要数分钟,而Docker容器应用,由于直接运行于宿主内核,无需启动完整的操作系统,因此可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
1.2.4 一致的运行环境
  开发过程中一个常见的问题是环境一致性问题。由于开发环境、测试环境、生产环境不一致,导致有些bug并未在开发过程中被发现。而Docker的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现**「这段代码在我机器没毛病」这类问题。
1.2.5 持续交付和部署
  对开发和运维人员来说,最希望的就是一次开发部署,可以再任何地方进行使用
  使用Docker可以通过定制应用镜像涞水县持续继承,持续交付,部署。开发人员可以通过Dockerfile来进行镜像构建,并结合持续集成(Continuous Integration) 系统进行集成测试,儿运维人员可以直接在生产环境中快速部署该镜像,甚至结合持续部署     (Continuous Delivery/Deployment) 系统进行自动部署。
  而且使用Dockerfile使镜像构建透明化,不仅仅开发团队可以理解应用运行环境,也方便运维团队理解应用运行所需条件,帮助更好的生产环境中部署该镜像。
1.2.6 更轻松的迁移
  Docker确保了运行环境的一致性,可以应用的迁移更加的容易,可以再很多平台上面运行,虚拟机,物理机,私有云,公有云,笔记本等等,因此用户可以很轻松的将一个平台上面的应用迁移到其他平台上面去,而不用担心环境变化导致应用无法运行
1.2.7 更轻松的维护和扩展
  Docker使用的分层存储以及镜像技术,使得应用的重复部分变的更加的容易,应用的维护也变得非常的简单,基于基础镜像进一步扩展镜像也变得很简单,此外Docker团队还有很多开源项目提供了大量的镜像既可以生产环境直接使用,又可以座位基础进一步定制,大大降低了应用服务的镜像制作成本
对比传统的虚拟机
特性 容器 虚拟机
启动 秒级 分钟
硬盘使用 一般为MB 一般为GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 几十个
 
2. docker安装
-- 1. 卸载老版本
  $ yum -y remove docker docker-common docker-selinux docker-engine
-- 2. 安装需要的软件包
  $ yum install -y yum-utils device-mapper-persistent-data lvm2
-- 3. 设置国内yum源
  $ yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-- 4. 查看docker版本
  $ yum list docker-ce --showduplicates|sort -r 
-- 5. 安装
  $ yum install docker-ce-18.03.1.ce -y
-- 6. 配置docker镜像源
  $ vi /etc/docker/daemon.json
  {
  "registry-mirrors": ["http://hub-mirror.c.163.com"]
  }
-- 7. 启动
  $ systemctl start docker
-- 8 加入开机自启
  systemctl enable docker
3. docker-容器,镜像,仓库,dockerfile,docker-compose 
  Docker 容器,镜像,仓库,dockerfile,docker-compose 
镜像(Image):例如:一个镜像可以包含一个完整的 ubuntu 操作系统环境,里面仅安装了 Apache 或用户需要的其它应用程序。也有比如PHP镜像,nginx镜像。 镜像可以用来创建 Docker 容器。用户可以直接
从其他人那里下载一个已经做好的镜像来直接使用。
通俗的来说
一个镜像好比是一个盗版的windows光碟文件,它可以装无数个window系统。
同样的,一个PHP docker镜像,也可以装无数个PHP。 
 
容器(Container): 镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。 
说了这么多,能不能通俗点:
一个镜像好比是一个盗版的windows光碟文件,它可以装无数个window系统。装好了的系统,你可以理解为一个容器。
同样的,一个PHP docker镜像,也可以装无数个PHP,装好了的PHP,就是一个docker容器。 
 
仓库(Repository) : 仓库是集中存放镜像文件的场所
有时候会把仓库和仓库注册服务器混为一谈,并不严格区分。实际上,仓库注册服务器往往存在多个仓库,每个仓库又存在多个镜像,每个镜像有有不同的标签(tag),
仓库分为公开仓库和私有仓库两种,最大的公开仓库是Docker hub,存放了数量庞大的镜像供用户下载。
 
Dockerfile:组合映像的命令行文本,可以在命令行中使用各种命令,Docker通过读取Dockerfile内得指令生成映像
Doclerfile是个文本文件,其内包含了一条条的指令,每一条指令构建一层,因为每一条指令的内容,就是描述该层如何构建
 
Docker Compose :用于定义和运行多容器docker的应用程序工具(此compose非composer)
compose是docker的服务编排工具,诞生之初是更好的帮助运维人员去管理docker容器,减少繁琐的单个容器的创建,删除等操作,适合组合使用多个容器开发的场景
对于多个容器的操作,传统的方式是一个个的创建,运行,而compose只需要一次性把这些命令写到docker-compose.yml文件里面,在以后整个启动环境的时候,只需要运行docoer-composer up这个命令就ok
 
4. 快速入门 
  

4.0. 常用命令 
============= 操作仓库 =============
-- 1. 从仓库上下载镜像资源到本地
docker pull xxx/yyy
-- 2. 推送本地镜像到仓库
docker push xxx/yyy
============= 操作镜像 =============
-- 1. 查看所有的镜像
docker images
-- 2. 删除镜像
docker rmi xxx/yyy
-- 3. 删除所有镜像
docker rmi $(docker images)
-- 4. 根据dockerfile构建镜像
docker build -t [镜像名称] .
-- 5. 强制删除镜像
docker rmi -f xxx/yyy
--- 6. 查看镜像的构建历史
docker history 镜像
============= 操作容器 =============
-- 1. 查看运行的容器
docker ps
-- 2. 查看所有容器(含未运行的)
docker ps -a
-- 3. 创建容器
docker run -itd --name 容器名称(自定义) 镜像名称
-- 4. 进入容器中
docker exec -it 容器名称 挂起命令(top,ping,sh,bash...)
-- 5. 容器转为镜像
docker commit -m="猫叔" 容器 镜像名称
-- 6. 启动容器
docker start 容器名
-- 7. 停止容器
docker stop 容器名
-- 8. 删除容器
docker rm 容器名
-- 9. 删除所有容器
docker rm $(docker ps -a -q)
============= 网络环境配置 =============
-- 1. 查看所有网络配置
docker network ls
-- 2. 创建网络
docker network create --subnet=172.100.100.0/24 mynetwork
-- 3. 删除网络
docker network rm mynetwork
-- 4. 给容器定义网络 --network=网络名 --ip=自定义ip
docker run -itd --network=mynetwork --ip=172.100.100.100 --name 容器名称(自定义) 镜像名称
============= 导出备份 =============
-- 1. 根据 容器 导出tar文件
docker export 容器名 > 文件名.tar
-- 2. 根据 容器 导出的tar文件转为镜像
docker import 文件名.tar 镜像名
-- 3. 根据 镜像 导出tar文件
docker save 镜像名 > 文件名.tar
-- 4. 根据 镜像 导出的tar文件转为镜像
docker load < 文件名.tar 
 
 
 

docker基础入门理解的更多相关文章

  1. Docker基础入门

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何 ...

  2. Docker基础入门及示例

    Docker近几年的发展可谓一日千里,特别从是2013年随着一个基于LXC的高级容器引擎开源,到现在,其在linux和windows上都有了很好的支持,并且已经有很多公司将docker用于实际的生产环 ...

  3. 小白学 Python 爬虫(4):前置准备(三)Docker基础入门

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

  4. Docker系列03—Docker 基础入门

    本文收录在容器技术学习系列文章总目录 1.概念介绍 1.1 容器 1.1.1 介绍 容纳其它物品的工具,可以部分或完全封闭,被用于容纳.储存.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. ...

  5. 容器技术之Docker基础入门

    前文我们了解了下LXC的基础用法以及图形管理工具LXC WEB Panel的简单使用,有兴趣的朋友可以参考https://www.cnblogs.com/qiuhom-1874/p/12904188. ...

  6. docker基础入门之二

    一.docker文件系统: linuxFS包括boot file system 和 root file system boot file system (bootfs),包含bootloader和ke ...

  7. Docker基础入门实践

    原文地址 基本概念 Docker三个基本概念 镜像(Image) 容器(Container) 仓库(Repository) 镜像 镜像可以理解为只读模板,如包含一个centos操作系统环境 容器 Do ...

  8. Docker系列01—Docker 基础入门

    一.初识Docker和容器 1.1 什么是docker 容纳其他物品的工具,可以部分或完全封闭,被用于容纳.存储.运输物品.物体可以被放置在容器中,而容器则可以保护内容物. 容器? 容器就是在隔离的环 ...

  9. docker基础入门之一

    一.概述 1.传统虚拟化技术: 纯软件的虚拟化是通过对于硬件层的模拟从而实现允许运行多个操作系统: 硬件辅助虚拟化需要硬件层面对于虚拟化的支持,类似Intel-VT技术等,具有更高的运行效率: 解决方 ...

随机推荐

  1. 题解 CF1354B 【Ternary String】

    题意 给出一个字符串,只包含 \({1,2}\) 或 \({3}\) .从中找出一个长度最短的子串,要求至少包含 \({1,2,3}\) 各一次,并输出其长度. 输入格式 本题有多组测试数据 第一行一 ...

  2. Windows 下Java JDK的下载与安装

    前言: 因为本机已经配置完毕了,本次使用的是虚拟机中的Win7系统,Win10系统操作步骤基本完全一样,不同的地方会在下面的步骤中指出. 一.JDK的下载 为了计算机安全,我们首先要做到的就是尽量在官 ...

  3. vue学习(三) v-bind指令

    //html <div id="app"> <input type="button" value="ok" v-bind: ...

  4. C#递归的简单实例

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  5. linux gdb 入门级教程(小白专用)

    送给包含我在内的所有小白: 对于养linux真姬的本小白来说,既然你选择养它,那你就要满足他. 如果你养了它是为了码代码,那我觉得gdb应该是它的基本需求了吧?! 然而gdb哪有那些IDE来的简单啊, ...

  6. 不想得手指关节炎?帮你提炼IDEA常用代码补全操作

    一.常用的代码补全操作 1..for和.fori(for 循环遍历) 输入args.for回车(args是一个数组或集合类),则会生成for循环遍历: 输入args.fori回车,则会生成带有索引的f ...

  7. 如何使用PHP验证客户端提交的表单数据

    PHP 表单验证 本章节我们将介绍如何使用PHP验证客户端提交的表单数据. PHP 表单验证 在处理PHP表单时我们需要考虑安全性. 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们 ...

  8. PHP zip_entry_filesize() 函数

    定义和用法 The zip_entry_filesize() 函数返回 zip 档案项目的原始文件尺寸(在压缩之前).高佣联盟 www.cgewang.com 语法 zip_entry_filesiz ...

  9. PHP vprintf() 函数

    实例 输出格式化的字符串: <?php高佣联盟 www.cgewang.com$number = 9;$str = "Beijing";vprintf("There ...

  10. Skill 计算两点距离

    https://www.cnblogs.com/yeungchie/ code procedure(ycHowFar(a b) prog((xAB yAB sAB) xAB = xCoord(a) - ...