3.1 初识Docker

一、什么是Docker

  1. 项目部署的问题

    1. 大型项目组件较多,运行环境也比较复杂,部署时会碰到一些问题

      1. 依赖关系复杂,容易出现兼容性能问题

      2. 开发、测试、预生产、生产环境有差异

    2. Docker如何解决以来的兼容问题

      1. 将Libs(函数库)、Deps(依赖)、配置预应用一起打包

      2. 将每个应用放到一个隔离容器去运行,避免相互干扰

    3. 不同环境的操作系统不同,Docker解决方式

      1. 系统的内核与硬件交互,提供操作硬件的指令

      2. 系统应用封装内核指令为函数,便于程序员调用

      3. 用户程序基于系统函数库实现功能

      4. 举例:Ubuntu和CentOS都是基于Linux内核,只是系统应用不同,提供的函数库有差异

      5. Docker解决方案1:将用户程序与所需要调用的系统函数库(比如CentOS)一起打包

      6. Docker解决方案2:Docker运行到不同的操作系统时,直接基于打包的库函数,借助于操作系统的Linux内核来运行

二、Docker和虚拟机的差别

  1. 虚拟机(Virtual Machine)是在操作系统中模拟硬件设备,然后运行另一个操作系统,比如在Windows中运行Ubuntu系统,这样就可以运行任意的Ubuntu应用了

  2. 对比

    特性

    Docker

    虚拟机

    性能

    接近原生

    性能较差

    磁盘占用

    一般为MB

    一般为GB

    启动

    秒级

    分钟级

三、Docker架构

  1. 镜像和容器

    1. 镜像(Image):Docker将应用程序及其所需要的依赖、函数库、环境、配置等文件打包在一起,称为镜像

    2. 容器(Container):镜像中的应用程序运行后形成的进程就是容器,只是Docker会给容器做隔离,对外不可见

  2. Docker和DockerHub

    1. DockerHub是一个Docker镜像的托管平台。这样的平台成为Docker Registry。

    2. 国内也有类似的DockerHub,比如网易云镜像服务器、阿里云镜像服务器等。

    3. 也可以搭建私有云

  3. Docker架构

    Docker是一个CS架构的程序,由两部分组成

    1. 服务器(Server):Docker守护进程,负责处理Docer指令,管理镜像,容器等

    2. 客户端(Client):通过命令或RestAPI向Docker服务器发送指令。可以在本地或远程向服务端发送指令

四、Docker的安装

  1. 这里举例CentOS 7安装Docker

    1. 卸载原有Docker

       yum remove docker \
           docker-client \
           docker-client-latest \
           docker-common \
           docker-latest \
           docker-latest-logrotate \
           docker-logrotate \
           docker-selinux \
           docker-engine-selinux \
           docker-engine \
           docker-ce

      备注:这里的 标识换行拼接

    2. 安装Docker

      1. 首先需要虚拟机联网,安装yum工具

         yum install -y yum-utils \
                    device-mapper-persistent-data \
                    lvm2 --skip-broken
      2. 更新本地镜像源

         # 设置docker镜像源
         yum-config-manager \
             --add-repo \
             https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
        
         sed -i 's/download.docker.com/mirrors.aliyun.com\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo
        
         yum makecache fast
      3. 开始安装

         yum install -y docker-ce

        备注:docker-ce为社区免费版本。稍等片刻,docker即可安装成功。

    3. 启动Docker

      1. Docker应用使用到了各种各样的端口,为了防止逐一修改防火墙端口,建议直接关闭防火墙

         # 关闭防火墙命令
         # 关闭
         systemctl stop firewalld
         # 禁止开机启动防火墙
         systemctl disable firewalld
      2. 通过命令启动Docker

         systemctl start docker  # 启动docker服务
        
         systemctl stop docker  # 停止docker服务
        
         systemctl restart docker  # 重启docker服务
      3. 查看Docker版本

         docker -v
    4. 配置镜像加速

      docker官方镜像仓库网速较差,我们需要设置国内镜像服务:

      参考阿里云的镜像加速文档:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

最后更新于

这有帮助吗?