zoukankan      html  css  js  c++  java
  • Docker安装配置教程

     

    Docker公开课

    Docker介绍

    1.1 Docker是什么

    云计算云服务

    IAAS(基础设施即服务)、PAAS(平台即服务)、SAAS(软件即服务)

    Docker到底是什么呢

    Docker一种虚拟化容器技术。

    开发项目

    Tomcat

    MySQL

    通过Docker这种虚拟化技术,我们可以物理机的资源进行更加合理有效的利用,可以将一台物理机器虚拟化出很多个拥有完整操作系统,并且相互独立的“虚拟计算机”。

    基于操作系统创建出一些相互独立的、功能虚拟化技术有多种实现方式,有基于硬件进行虚拟化的技术,而Docker只是针对操作系统进行虚拟化,对于硬件资源的使用率更低。

    相对于VMware这种虚拟化技术,Docker拥有着显著的优势:

    1. 启动速度快,Docker容器启动操作系统在秒级就可以完成,而VMware却是达到分钟级。
    2. 系统资源消耗低一台Linux服务器可以运行成千上百个Docker容器VMware大概只能同时运行10个左右。
    3. 更轻松的迁移和扩展由于Docker容器比VMware占用更少的硬盘空间在需要搭建几套软件环境的情况下对安装好的Docker容器进行迁移会更快捷更方便而且Docker容器几乎可以在任意的平台上运行包括虚拟机物理机公有云私有云个人电脑等这种兼容性可以让用户将一个应用程序从一个平台直接迁移到另一个平台

    1.2 Docker能做什么

    docker可以给开发人员和运维人员带来帮助

    项目拥有多套环境开发环境测试环境预生产环境生成环境

    环境(中间件,具体比如TomcatMySQL)不一致

    我们之所以要学习Docker那是因为Docker是一门神奇的技术

    使用Docker,开发人员只需要关注于软件应用开发运维人员只需要关心如何管理容器。这样的话,就可以避免在以往开发环境中经常出现的环境不一致问题,比如开发人员在开发环境运行应用程序是正常的,但是同样的代码部署到生产环境就不行了,这种问题出现的最大原因就是环境的不一致造成的。而现在通过Docker容器,开发人员在开发&测试时使用的Docker容器环境,可以直接提交给运维人员,由运维人员在生产环境中,直接拿着开发人员搭建好的Docker容器并在其中部署应用避免开发环境和生产环境的不一致性

    当然,Docker的强大远远不至于此,而作为软件开发人员的我们,更关注的是如何利用它来搭建一套统一的软件开发环境。

    对比传统虚拟机总结

     

    接下来我们将会一步一步的揭开Docker的神秘面纱!

    1.3 网络项目架构

     

    1.4 Docker基本概念

    docker包含三个基本概念

    镜像(Image

    容器Container

    仓库Repository

    理解了这三个概念就理解了docker的整个生命周期了

    1.4.1 镜像

    Docker镜像Image就是一个只读的模板

    Docker镜像可以用来创建Docker容器

    Docker镜像和Docker容器的关系类似于javaclass类与对象之间的关系

    Docker提供了一个很简单的机制来创建镜像或者更新已有的镜像,用户甚至可以直接从其他人那里下载一个已经做好的镜像来直接使用。

    1.4.2 容器

    Docker利用容器Container)来运行应用。

    容器是从镜像创建的运行实例它可以被启动开始停止删除每个容器都是相互隔离的、保证安全的平台。

    可以把容器看成是一个简易版的Linux环境(包括ROOT用户权限、进程空间、用户空间、网络等)和运行在其中的应用程序。

    1.4.3 Registry

    Registry是集中存放镜像文件的场所。

    仓库Repository)是对于其中的镜像进行分类管理。

    一个Registry中会有多个Repository

    一个Repository中会有多个不同tagImage

    比如名称为centosRepository仓库下tag6或者7Image镜像。

    Registry分为公有public和私有private两种形式

    最大的公有RegistryDocker Hub,存放了数量庞大的镜像供用户下载使用

    国内的公开Registry包括USTC、网易云、DaoCloudAliCloud等,可以供大陆用户更稳当快捷的访问。

    用户可以在本地创建一个私有Registry。

    用户创建了自己的镜像之后就可以使用push命令将它上传的公有Registry或者私有Registry这样下次在另一台机器上使用这个镜像的时候只需要从Registrypull下来运行就可以了

    Docker安装

    官方网站上有各种环境下的安装指南比如:CentOS、UbuntuDebian系列的安装

    而我们现在主要讲解的是基于CentOS 7.x上面的安装

    注意:CentOS 7的安装比较耗费时间所以不在本教程之内但是资料中已经准备了CentOS 7的安装镜像以及安装文档课下可以参考着文档进行安装

     

    安装好CentOS之后,需要通过SSH客户端工具访问CentOS操作系统,所以需要在CentOS的系统界面中查看IP地址,查看方式在7.x后,ipconfig命令被废除,使用ip addr命令

    一切完毕之后,只需要执行以下命令即可完成Docker的安装:

    yum install docker

    systemctl start docker

     

     

    Docker镜像

    3.1 拉取镜像

    我们可以使用命令从一些公用仓库中拉取镜像到本地,下面就列举一些常用的公用仓库拉取镜像的方式!

    3.1.1 docker hub拉取

    https://hub.docker.com/

    下面的例子将从Docker Hub仓库下载一个CentOS 7版本的操作系统镜像

    docker pull centos:7

    这是docker默认的公用仓库不过缺点是国内下载会比较慢

     

    3.1.2 ustc拉取(建议使用)

    在宿主机器编辑文件:vi /etc/docker/daemon.json

    请在该配置文件中加入(没有该文件的话,请先建一个):

    {

      "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]

    }

    最后需要重启docker服务

    systemctl restart docker.service

    之后再使用pull命令拉取镜像这时候是从ustc获取镜像而且速度杠杠的

     

    3.2 列出镜像

    docker images

    3.3 删除镜像

    docker rmi 镜像

    3.4 导入导出镜像

    导出镜像:docker save 镜像 > /root/xx.tar.gz

    导入镜像:docker load < /root/xx.tar.gz

    Docker容器

    4.1 启动容器

    以交互方式启动容器:docker run -it --name 容器名称 镜像 /bin/bash

    以守护进程方式启动容器:docker run -d --name 容器名称 镜像

    4.2 停止容器

    docker stop 容器名称或者容器ID

    4.3 重启容器

    docker start 容器名称或者容器ID

    4.4 删除容器

    删除指定容器:docker rm 容器名称或者容器ID

    删除所有容器:docker rm ‘docker ps -a -q’

    4.5 查看容器

    docker ps :查看正在运行的容器

    docker ps -a:查看历史运行过的容器

    docker ps -l:查看最近运行过的容器

    Docker应用

    5.1 搭建Tomcat服务

    docker run -d --name my-tomcat -p 8888:8080 镜像

     

     

    5.2 部署web应用

    1、 war包上传到宿主机器

    2、 通过docker cp命令将宿主机器的war包上传到容器中tomcatwebapps目录下。

    3、 tomat会自动热部署直接访问web应用的路径即可

  • 相关阅读:
    RStudio 的使用
    R 语言文件读写
    R 语言文件读写
    matlab 编程的细节问题
    matlab 编程的细节问题
    matlab 图像分块及恢复
    matlab 图像分块及恢复
    matlab 高级函数 —— colfilt/blockproc (图像)矩阵的分块处理
    结构体/类中的弹性数组---元素个数为0的数组
    28.uva 10891 Game of Sum 记忆化dp
  • 原文地址:https://www.cnblogs.com/wzlbigdata/p/8377232.html
Copyright © 2011-2022 走看看