Docker 简介
- Docker 是一个开源的容器引擎,可将应用程序和基础设施隔离,并能将基础设施当做程序一样进行管理,使用 Docker 可以更快的打包、测试以及部署应用程序,甚至可以再 Docker 中运行一个 Linux 系统镜像,它就像一个仿真操作系统
- Docker 适用场景:
- 测试:Docker 很适用于测试发布,将 Docker 封装后可以直接给测试人员运行,不在需要测试人员与运维、开发进行配合部署
- 开发:开发人员共用一个 Docker 镜像,同时修改的源代码都被挂载到本地磁盘,不再因为环境的不同而伤脑筋
- 云服务:Docker 支持命令行封装与编程,通过自动加载与服务自发现,可以很方便的将封装于 Docker 镜像中的服务拓展成云服务,根据业务请求随时增加和减少容器运行数量
- Docker 的优点:
- 快速搭建兼容性测试环境:可以快速的利用基础 Docker 镜像创建各类容器,装载相应技术组件并快速启动运行,省去环境搭建时间
- 快速搭建复杂分布式测试环境:Docker 可以在一台机器上轻松搭建出成百上千个分布式节点的容器环境,从而模拟以前需要消耗大量时间和机器资源才能搭建出的分布式复杂测试环境
- 持续集成:Docker 可以快速创建和插销容器,在持续继承的环境中,可以频繁和快速地进行部署和验证工作
Docker 架构
- Docker daemon(Docker 守护进程):运行于主机上,处理服务请求
- Client(Docker 客户端):用户界面,通过它与 Docker Daemon 通信
- Images(Docker 镜像):镜像是 Docker 运行容器的前提,提供容器运行时所需的程序、库、资源、配置文件与配置参数等。它就像操作系统光盘镜像,可通过镜像来安装系统(容器)
- Container(容器):容器是镜像的可运行实例,镜像和容器的关系类似于类和对象的关系,可通过 Docker API 或者 CLI 命令来启动、移除容器
- Registry:是一个集中存储与分发镜像的服务,类似 Maven 中央仓库
安装 Docker
sudo yum update
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
sudo yum -y install docker-engine
sudo systemctl enable docker.service
sudo systemctl start docker.service
sudo docker run hello-world
卸载 Docker
sudo yum -y remove docker-engine
sudo rm -rf /var/lib/docker
配置镜像加速
- 国内 Docker Hub 速度很不稳定,常常出现连接不上的情况,可使用镜像加速服务,如阿里云镜像加速服务
- 注册阿里云账号,即可在阿里云控制台根据说明操作配置