您的位置:首页 > 运维架构 > Docker

Docker基础及安装

2020-02-06 18:24 190 查看
  • 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

     

    转载于:https://www.cnblogs.com/haorong/p/11008652.html

    • 点赞
    • 收藏
    • 分享
    • 文章举报
    a755737444 发布了0 篇原创文章 · 获赞 0 · 访问量 291 私信 关注
  • 内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
    标签: