• Docker基础及安装


    • Docker 简介
    • Dokcer 功能特性
    • Docker 应用场景
    • 安装环境
    • 防火墙及安全机制
    • 版本选择
    • Docker 标准版本安装
    • Docker CE版本安装
    • 修改 Docker 运行目录

    Dokcer简介


    • Docker 是一个开源的应用容器引擎, 让开发者可以打包其应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 服务器上, 也可以实现虚拟化, 容器是完全使用沙箱机制,相互之间不会有任何接口;
    • 完整的 Docker 包括
      • Dokcer Client 客户端
      • Dokcer Daemon 守护进程
      • Docker Image 镜像
      • Docker Container 容器

    Dokcer 功能特性


    • 隔离环境 ( 系统, 网络, 文件系统 ) 与应用
      • 通过 cgroup ( 隔离和跟踪资源的使用 ) & namespace ( 组与组之间的隔离 ) 来实现轻量级的进程隔离;
      • 对应容器中的运行的进程来说, 自己独占了一个系统
      • 容器间网络, 文件 及 其他资源都相互隔离;
    • 解决依赖与版本问题
      • 传统模式下, 多个不同环境或版本的项目需要部署在不同的服务器上, 部署与后期维护管理复杂繁琐;
      • 使用 Docker, 通过多个不同版本或者环境的镜像, 可以同时运行在一台机器上互不干扰, 部署与后期维护简单方便;
    • 易于分发, 开箱即用
      • 镜像可以通过 导入, 导出, 上传到镜像仓库等多种方式进行使用操作;
      • 在启动了 Docker 的系统上直接使用 docker run 即可启动镜像, 无需特别配置;
    • 节点与容器快速扩容
      • 容器扩容简单方便;
      • 扩容节点只需要安装并启动 Docker 即可;
    • 镜像制作简单便捷,管理方便.
      • 镜像的灵魂 Dockerfile;
      • 使用 Dockerfile 进行指令控制, FROM, MAINTAINER, LABEL, ENV, RUN 等;
      • 基于 Linux 命令, 易于理解;
      • 易于定制与修改;

    Docker 应用场景


    • web 应用的自动化打包和发布;
    • 自动化测试 和 持续集成 , 发布;
    • 应用服务, 如 MySQL, Redis 等, 通过 Docker 实现快速部署;
    • k8s 私有云

     Docker 通常用于如下场景:

    • 应用场景1: 多版本多种类系统与软件
      • 需要一个 CentOS 7 / 一个 CentOS 6 / 一个 Ubuntu / MySQL 5.5 / MySQL 5.7 等等进行测试;
      • 各个环境配置好以后, 只使用 几分钟, 就需要更换一个版本;
      • 使用传统的虚拟机解决方案, 一天天的不需要别的工作了;
      • 使用 Docker , 每个需求只需要一个 docker run
    • 应用场景2: 环境
      • 很多时候存在多个环境版本一致性问题, 如 PHP 运行环境, 涉及到 PHP 版本, PHP扩展的版本等;
      • 环境不一致容器导致诸多问题, 如在测试环境正常的项目,到生产后报错, 回退到测试环境又不能复现;
      • 使用 Docker 镜像封装运行环境, 一次构建, 到处运行;
      • 新增的系统也能快速部署, 实现高效的节点扩容, 保障业务的健康与稳定性;
      • 开发者之间也解决了环境一致性的问题, 且不必再经常为环境问题烦恼,专心实现业务需求;
    • 应用场景3: 分发
      • 项目编译好之后, 带上安装文档去客户现场进行安装及配置;
        • 需要先准备好系统
        • 配置环境;
        • 上传项目程序;
        • 启动运行,报错, 调试;
        • 重复上一步
      • 将运行环境与项目代码封装成 docker 镜像, 到客户现场后直接在系统中安装 Docker 并启动;
        • 导入镜像开始运行;
      • 甚至通过远程就能完成部署

     安装环境


    • 系统:    CentOS 7.4 minimal
    • 时区:              Asia/Shanghai
    • 分区:
      •   /boot        XFS        500M
      •       swap                      不使用
      •       /                             剩余全部
    • Docker 有 Windows 和 MacOS 版本, 但是为了更好的兼容, 我们选择 Linux 中运行 Docker;
    •  使用 vMware虚拟机来安装和运行 CentOS 系统;
    • 其它虚拟软件 VirtualBox, KVM , XEN 等等也可以

     防火墙及安全机制


    •  防火墙:                       建议开启
    • SeLinux:                      建议开启
    • 需要特别说明的是: 防火墙和 selinux 是系统与网络安全的重要保障,我们不要轻易去禁用或者停用它们,
    • 后续会结合使用
     版本选择
    •  Docker
      •  17.03 之后版本变为 Docker CE
    •  Docker CE
      • 社区版, Community Edition
    • Docker EE
      • 企业版, Enterprise Edition
      • 收费版本,强调安全性,提供一些高级特性及商业支持

     Docker 标准版本安装


     

    // 使用 yum 安装 docker
    yum -y install docker
    
    // 启动 docker 并设置为开机启动
    systemctl start docker
    systemctl enable docke

     Docker CE版本安装


     

    // 首先确定没有 yum 安装的 docker, 存在的话先进行 卸载
    ps -ef |grep docker && yum -y remove docker
    
    // 可以使用 yum 查看安装信息
    yum history                                // 查看所有yum的操作
    yum history info N                      // 表示查看yum操作的第N个详细信息
    yum history undo N                    // 表示将第 N 个安装的所有包都卸载
    
    // 安装相关依赖包
    yum -y install yum-utils device-mapper-persistent-data lvm2
    
    // 两种方法下载 docker-ce.repo
    yum-config-manager --add-repo=http://download.docker.com/linux/centos/docker-ce.repo
     || 
    curl http://download.docker.com/linux/centos/docker-ce.repo -o /etc/yum.repos.d/docker-ce.repo
    
    // 安装 docker-ce
    yum -y install docker-ce
    
    // 启动 docker 并设置开机启动
    systemctl start docker
    systemctl enable docker
    
    
    // 查看docker版本号
    docker version
    Client:
     Version:           18.09.6
     API version:       1.39
     Go version:        go1.10.8
     Git commit:        481bc77156
     Built:             Sat May  4 02:34:58 2019
     OS/Arch:           linux/amd64
     Experimental:      false
    
    Server: Docker Engine - Community
     Engine:
      Version:          18.09.6
      API version:      1.39 (minimum version 1.12)
      Go version:       go1.10.8
      Git commit:       481bc77
      Built:            Sat May  4 02:02:43 2019
      OS/Arch:          linux/amd64
      Experimental:     false    

    修改 Docker 运行目录


     原因, 有时候服务器以及 云服务器 根目录的空间都不是很大, docker 默认占用的是 /var/lib/docker 目录, 我们改成我们想要设置的空间够大的目录;

    // 创建指定的目录
    mkdir /data/docker
    
    // 修改启动程序
    vim /usr/lib/systemd/system/docker.service
    ... ...
    ExecStart=/usr/bin/dockerd 
        --data-root /data/docker            // 指定需要设置的目录;
    ... ...
    
    // reload配置
    systemctl daemon-reload
    
    
    // 重启docker
    systemctl restart docker
    
    // 开启 selinux 机制的情况下, 进行以下修改
    chcon -R -u system_u /data/docker
    chcon -R -t container_var_lib_t /data/docker
    chcon -R -t container_share_t /data/docker/overlay2
  • 相关阅读:
    Css3炫酷总结使用
    HTML5的你应该记住的一些知识点
    JavaScript 笔记
    Sliverlight linq中的数组筛选数据库中的数据
    理解依赖注入 for Zend framework 2
    Zend Framework 2中如何使用Service Manager
    让注册体验来得更简单点吧
    Flash中国地图 开放源码
    cocos2dx之WebView踩过的坑(android返回键处理问题)
    android游戏的增量更新(资源及代码的热更新)
  • 原文地址:https://www.cnblogs.com/haorong/p/11008652.html
Copyright © 2020-2023  润新知