文章目录

  • Docker简介
  • Docker安装
  • 前提:
  • 三要素
  • 安装步骤
  • 阿里云镜像加速器配置
  • 测试运行HelloWorld镜像
  • Docker 常用命令
  • 帮助命令
  • 镜像命令
  • 容器命令
  • Docker镜像
  • Docker容器数据卷
  • DockerFile解析


Docker简介

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

Docker的理念便是在任何地方构建、发布并运行任何应用,做到一次封装,到处运行

docker 是运维还是后端 docker属于运维还是开发_Docker

  • 与传统虚拟机的对比
    传统虚拟机:资源占用多、冗余步骤多、启动慢
    Docker:容器内的应用进程直接运行于宿主内核,更轻便、每个容器互相隔离,不会互相影响,区分计算资源

Docker安装

前提:

Docker 运行在CentOS7上,要求系统为64位,系统内核版本为3.10以上
Docker 运行在CentOS6.5或更高版本的CentOS上,要求系统为64位、系统内核版本为2.6.32-431或者更高版本

docker 是运维还是后端 docker属于运维还是开发_docker 是运维还是后端_02

三要素

  • 镜像:image文件生成的容器实例,本身也是一个文件,称为镜像文件
  • 容器:一个容器运行一种服务,当我们需要的时候,就可以通过docker客户端创建一个对应的运行实例,也就是我们的容器
  • 仓库:就是存放了一堆镜像的地方,我们可以把镜像发布到仓库中,需要的时候从仓库拉下来就可以了

安装步骤

  • CentOS6
  • CentOS 6.7 安装Docker
  • Docker安装遇到No package docker-io available解决办法
  • CentOS7

阿里云镜像加速器配置

  • 注册并登录阿里云,获取个人专属加速器地址
  • 配置本机Docker运行镜像加速器
  • 修改配置文件
  • CentOS6的配置文件:/etc/sysconfig/docker
  • CentOS7的配置文件:/etc/docker/daemon.json
  • docker 是运维还是后端 docker属于运维还是开发_Docker_03

  • 重启docke.service即可

测试运行HelloWorld镜像

docker 是运维还是后端 docker属于运维还是开发_linux_04

  • run运行流程

Docker 常用命令

帮助命令

镜像命令

容器命令

Docker镜像

  • 是什么?
    镜像是一种轻量级、可执行的独立软件包,用来打包运行环境和基于运行环境开发的软件,它包含某个软件所需的所有内容,包括代码、运行时、库、环境变量和配置文件
  • 基础:UnionFS(联合文件系统
    特性:一次同时加载多个文件系统,但从外面看来,只能看到一个文件系统,联合加载会把各层文件系统叠加起来,这样最终文件系统就会包含所有底层的文件和目录
  • 镜像运行原理
  • 特点:
    docker镜像都是只读的,当容器启动时,一个新的可写层被加载到镜像的顶部。这一层通常被称作“容器层”,“容器层”之下的都叫“镜像层”
  • 镜像commit
  • docker commit提交容器副本使之成为一个新的镜像
  • docker commit -m=“提交的描述信息” -a=“作者” 容器ID 要创建的目标镜像名:【标签名】
  • 案例:
  • 初次启动tomcat无法访问404:
  • docker run -it -p 8888:8080 tomcat: 启动tomcat容器
  • 提交commit

Docker容器数据卷

  • 是什么
    Docker容器产生的数据,如果不通过commit生成新的镜像,使得数据作为镜像一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷
  • 能干嘛
    容器的持久化
    容器间继承+共享数据
  • 数据卷
  • 容器内添加
  • 容器内数据共享

    细节:容器停止后,主机修改后数据依然同步
  • DockerFile添加
  • 根目录下新建mydocker文件夹并进入
  • File构建
  • build后生成镜像
  • run容器
  • 主机对应默认地址(inspect命令)
  • 数据卷容器
  • 定义:命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器
  • 容器间传递共享(–volumes-from)


    细节:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它止

DockerFile解析

  • 是什么?
  • DockerFile是用来构建Docker镜像的构建文件,是由一系列命令和参数构成的脚本
  • 构建三步骤
  1. 编写DockerFile文件
  2. docker build
  3. docker run
  • DockerFile构建过程解析
  • DockerFile内容基础知识
  1. 每条保留字指令都必须为大写字母且后面要跟随至少一个参数
  2. 指令按照从上到下,顺序执行
  3. #表示注释
  4. 每条指令都会创建一个新的镜像层,并对镜像进行提交
  • Docker执行DockerFile的大致流程
  1. docker从基础镜像运行一个容器
  2. 执行一条指令对容器作出修改
  3. 执行类似docker commit的操作提交一个新的镜像层
  4. docker再基于刚提交的镜像运行一个容器
  5. 执行dockerfile中的下一条指令直到所有指令都执行完成
  • 总结
  • DockerFile是软件的原材料
  • Docker镜像是软件的交付品
  • Docker容器则可以认为是软件的运行态
  • DockerFile面向开发,Docker镜像成为交付标椎,Docker容器则涉及部署和运维
  • DockerFile体系结构