docker 介绍及教程

@docker 介绍及教程—概念篇

1. docerk 为什么会出现,为什么那么热门
a)因为软件部署上线阶段开发环境和配置与实际生产环境与配置不同导致程序无法运行。同时软件版本的迭代,不同版本环境的兼容,都会岛主软件无法运行。
b)热门原因:它提供了一种针对环境及配置的一种标准化解决方案。
c)传统运行的环境需要安装各种软件、各种驱动包,这样配置麻烦、工作量大、同时不能跨平台。移植到相同的服务器也很麻烦。在这个过程难免会有异常发生。
d) docker镜像的设计,使docker打破传统的程序即应用的观念。通过镜像将作业系统核心除外,运作应用程式所需要的系统环境,由下而上打包,达到应用程式跨平台间的无缝接轨运行。

举例:传统的方式:开发有一台系统,上面安装了n个软件,同时还需要进行各类的配置。繁琐、耗时、又没办法标准化。
现在方式:把开发环境做成一个镜像,这个镜像可以快速复制n个副本。

2. docker的理念:
a)docker是基于go语言实现的云开源项目。
b)docker主要的目标是“Build,ship and run any app,anywhere”
翻译过来就是:通过对应用组件的封装、分发、部署、运行等生命周期的管理,使用户的app(可以是一个web应用或数据库应用等等)及其运行环境能够做到“一次封装,到处运行”。
c)解决了运行环境和配置问题软件容器,方便做持续集成并由助于整体发布的容器虚拟化技术。
d)docker三个概念:镜像、容器、仓库 —-docker架构图

docker 介绍及教程
docker daemon 就是daocker与外界通讯的接口。

3. docker能干什么/strong>
a)与虚拟机区别:
1.虚拟机就是带环境安装的一种解决方案。包含环境、软件、硬件的一套模拟系统。
缺点:资源占用多、冗余步骤多、启动慢
虚拟机是分钟级。
容器是秒级。
2.容器虚拟化 (linux容器 简称lxc):
Linux容器不是模拟一个完整的操作系统,对进程进行隔离。没有自己的内核。
容器不需要一整套操作系统,只需要软件工作所需要的软件和配置。

4.docker安装 —只列举centos 6.8 其他登录官网查看
a)前提说明
docker支持centos版本
centos 7 64位
centos 6.564位或更高版本
b)前提条件
centos内核要求:centos7 内核3.10以上
centos-6.5 内核要求 2。6.32-431或更高版本
c)查看内核版本:uname -r
查看系统版本:cat /etc/redhat-release

  1. 如何从仓库内下载一个镜像,运行。—阿里云镜像加速

    1、访问阿里云网址。 dev.aliyun.com/search.html
    2、注册一个阿里云平台的账号。
    3、获得加速器地址链接—登陆阿里云开发者平台—-获取加速器地址。 (登陆-镜像加速器–选择版本- 根据要求进行修改)
    4、配置本机docker运行镜像加速器 (不同系统不同操作方式)
    /etc/sysconfig/docker
    vim /etc/sysconfig/docker
    修改(other_args=“拷贝此处”)
    5、重新启动docker后台服务:service docker restart
    6、linux系统下配置完加速器需要检查是否生效。
    ps -ef|grep docker
    (查看加速期地址是否正确)

  2. 启动docker 后台容器(测试运行hello world)
    a)docker run
    docker run hello-world。(通过docker客户端运行一个hello-world的镜像)
    b)run干了什么
    先从本地搜索 hello-world镜像,没有从阿里云搜索。

    docker 介绍及教程

    docker 介绍及教程
    docker 镜像加载原理
    docker 介绍及教程
    docker为什么采用分层架构

    docker 介绍及教程

    docker 容器数据卷

    1、是干什么br> 做持久化
    容器间继承+共享数据
    docker的理念:
    将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据要求希望是持久化的。容器之间希望有可能共享数据。
    docker 容器产生的数据,如果不通过docker commit生成新的镜像,使得数据作为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。
    为了能保存数据在docker中我们使用卷

    2、能干嘛br> 1、数据卷可在容器之间共享或重用数据
    2、卷中的更改可以直接生效
    3、数据卷中的更改不会包含在镜像的更新中
    4、数据卷的生命周期一直持续到没有容器使用为止。
    容器间继承+共享数据
    容器的持久化
    3、数据卷br> 1、如何添加容器卷
    a)直接命令添加
    不带权限命令:docker run -it -v /宿主机绝对路径目录:/容器内目 镜像名
    如:docker run -it -v /mydate:/datecentos centos
    -v有新建功能
    带权限命令:
    docker run it -v /宿主机绝对路径目录:/容器内目:ro 镜像名
    :ro(只读)

    4、数据卷容器br> 是什么br> 命名的容器挂在数据卷,其它容器通过挂在这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。
    白话: 活动硬盘上挂活动硬盘实现数据之间的传递。

    1.先启动一个父容器dc01
    docker run -it –name dc01 容器名

    2、dc02/dc03继承自dc01。 –volumes-from
    命令:
    docker run -it –name dc02 –volumes-from dc01 容器名

    3.回到dc01可以看到02/03各自添加的都能共享了

    4.删除dc02后dc03可否访问
    docker rm -f dc01

    5、新建dc04继承dc03后再删除dc03
    docker run -it –name dc04 –volumes-from dc03 容器名
    docker rm -f dc03
    6、结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用为止。

    dockerFile 重要

    dockerfile是什么/strong>

    dockerfile构建三步骤:编写dockerfile文件-docker build –docker run
    文件什么样以我们数据的centos为例。

    docker 介绍及教程
    docker 介绍及教程
    1.FROM
    基础镜像,当前新镜像是基于哪个镜像的
    2.MAINTAINER
    镜像维护着的姓名和邮箱地址
    3.RUN
    容器构建需要的运行的命令
    4.EXPOSE
    当前容器对外暴露出的端口号
    5.WORKDIR
    指定在创建容器后,终端默认登陆的进来工作目录,一个落脚点
    6.ENV
    用来在构建镜像过程中设置环境变量
    7.ADD
    将宿主机目录下的文件拷贝进镜像且add命令会自动处理URL和解压tar压缩包
    8.COPY
    类似add,拷贝文件和目录到镜像中
    将从构建上下文目录中(源路径)的文件/目录复制到新的一层的镜像内的(目标路径)为止
    9.VOLUME
    容器数据卷,用来数据保存和持久化工作
    10.CMD
    指定一个容器启动时要运行的命令
    dockerfile中可以有多个cmd指令,但只有最后一个生效,cmd会被docker run之后的参数替换
    11.ENTRYPOINT
    指定一个容器启动时要运行的命令
    ENTRYPOINT的目的和cmd一样,都是在指定容器启动程序及参数
    12.ONBUILD
    当构建一个被继承的dockerfile时运行命令,父镜像在被子镜像后父镜像的onbuild被触发。

    自定义镜像

    编写此centos的dockerfile

    需要在宿主机内创建一个这样的dockerfile文本
    将以上内容放进去
    示例 docker build -t 新镜像名字:TAG. (.代表当前路径)
    实际写:在宿主机上
    docker build -f dockerfile路径 -t 新镜像名字:TAG.
    docker run -it 新建的镜像名称:TAG.
    尝试是否可以使用vim。ifconfig 等等
    列出镜像的变更历史
    docker images 新的镜像名称

    案例2:cmd和ENTRYPOINT区别

    docker常用安装

    总体步骤
    搜索镜像
    拉取镜像
    查看镜像
    启动镜像
    停止容器
    移除容器

    安装mysql

    docker search mysql
    docker pull mysql:5.6. (:5.6版本号)
    docker run -p 12345:3306 –name mysql
    -v /date/mysql/conf:/etc/mysql/conf.d
    -v /date/mysql/logs:/logs
    -e MYSQL_ROOT_PASSWORD=123456
    -d mysql:5.6
    mysql -uroot -p。 进入mysql

    数据备份
    本地镜像发布到阿里云流程

    1.安装相关插件
    yum -y install gcc
    yum -y install gcc-c++
    2.卸载之前的docker

    docker 介绍及教程

    4.安装阿里云上的docker
    5。更新yum软件包
    6.安装docker ce
    7.启动docker
    sysemctl start docker
    8.docker run hello-word
    9。配置镜像加速

    docker 介绍及教程
    10.卸载:
    docker 介绍及教程

    文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8595 人正在系统学习中

    来源:Dikey灬逸少

    声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年8月18日
下一篇 2020年8月18日

相关推荐