Docker简介

  • Docker是一个基于go语言开源的应用容器引擎。
  • Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
  • 容器是完全使用沙箱机制,相互之间不会有任何接口(类似手机的 app),更重要的是容器性能开销极低。

Docker的应用场景

  • Web 应用的自动化打包和发布
  • 自动化测试和持续集成、发布
  • 在服务型环境中部署和调整数据库或其他的后台应用
  • 从头编译或者扩展现有的 OpenShift 或 Cloud Foundry 平台来搭建自己的 PaaS 环境

Docker的优点

  • 快速,一致地交付您的应用程序:Docker 允许开发人员使用您提供的应用程序或服务的本地容器在标准化环境中工作,从而简化了开发的生命周期。
  • 响应式部署和扩展:Docker 是基于容器的平台,允许高度可移植的工作负载。Docker 容器可以在开发人员的本机上,数据中心的物理或虚拟机上,云服务上或混合环境中运行。
  • 在同一硬件上运行更多工作负载:Docker 轻巧快速。它为基于虚拟机管理程序的虚拟机提供了可行、经济、高效的替代方案,因此可以利用更多的计算能力来实现业务目标。Docker 非常适合于高密度环境以及中小型部署,可以用更少的资源做更多的事情。

Docker的基本概念

在这里插入图片描述

概念 说明
Docker镜像(Images) Docker 镜像是用于创建 Docker 容器的模板,比如 Ubuntu 系统
Docker容器(Container) Docker容器是独立运行的一个或一组应用,是镜像运行时的实体
Docker仓库(Registry) Docker 仓库用来保存镜像,可以理解为代码控制中的代码仓库
Docker客户端(Client) Docker 客户端通过命令行或者其他工具使用 Docker SDK与 Docker 的守护进程通信
Docker主机(Host) Docker主机代指 一个物理或者虚拟的机器用于执行 Docker 守护进程和容器
Docker Machine Docker Machine是一个简化Docker安装的命令行工具,通过一个简单的命令行即可在相应的平台上安装Docker,比如VirtualBox、 Digital Ocean、Microsoft Azure

注:

  1. Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。
  2. Docker 容器通过 Docker 镜像来创建,容器与镜像的关系类似于面向对象编程中的对象与类。

Docker的安装

1.移除旧版本docker及相关依赖(第一次安装可跳过)。

1
2
3
4
5
6
7
8
$ sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine

2.安装docker仓库

1
2
3
4
5
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

3.安装最新版本的docker

1
$ sudo yum install docker-ce docker-ce-cli containerd.io

4.启动docker

1
$ sudo systemctl start docker

5.验证是否安装成功

1
$ sudo docker run hello-world

Docker镜像加速

国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。Docker 官方和国内很多云服务商都提供了国内加速器服务,例如:阿里云、网易、七牛云。
阿里云镜像加速器地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
在这里插入图片描述