• 简介
  • docker架构组件
  • 安装配置
  • 配置参数
  • 启动服务

  • 简介

    • docker的官方概念:2013, GO语言开发, Apache 2.0, dotCloud研发公司
      开发人员和系统管理员可以使用docker平台去开发、部署、运行应用。使用Linux容器来部署应用程序称为集装箱化。容器并不是什么新技术,但可以简化部署应用。
    • 容器化不断受捧原因如下:
      Flexible: Even the most complex applications can be containerized.
      Lightweight: Containers leverage and share the host kernel.
      Interchangeable: You can deploy updates and upgrades on-the-fly.
      Portable: You can build locally, deploy to the cloud, and run anywhere.
      Scalable: You can increase and automatically distribute container replicas.
      Stackable: You can stack services vertically and on-the-fly.
      Docker的特性:
      标准化:
      保证一致的运行环境
      弹性伸缩,快速扩容
      方便迁移
      持续集成、持续交付与持续部署
      高性能:不需要进行硬件虚拟以及运行完整的操作系统
      轻量级:快速启动
      隔离性:进程隔离
    • docker与VM的区别:
      两者的对比图:
      docker简介与安装配置
  • docker架构组件

    • docker架构
      c/s架构,Docker客户端与Docker守护进程通信,Docker守护进程负责构建,运行和分发Docker容器。Docker客户端和守护进程可以在同一个系统上运行,也可以将Docker客户端连接到远程Docker守护进程。Docker客户端和守护进程使用REST API通过unix套接字或网络接口进行通信。
      docker简介与安装配置

    • The Docker daemon
      docker守护进程(dockerd)监听docker API请求并管理docker对象,例如:images、container、network、和volumes。dockerd还可以与别的进程通信管理docker服务。
    • The Docker client
      docker客户端是我们与Docker交互的主要方法。例如使用docker run命令,客户端发送命令到dockerd运行命令,客户端可以跟多个服务进程通信。

    • Docker registries
      存储Docker镜像仓库,公共仓库有Docker Hub,Docker Cloud ,默认配置从Docker Hub查找镜像,你也可以运行你的私有仓库。Docker数据中心包含Docker信任仓库。当使用docker pull或者docker run命令时,从你配置的仓库拉取需要的镜像。当使用docker push命令时,镜像推送至你配置的仓库。

    • IMAGES
      镜像是一个只读模板 ,带有创建docker容器的说明。一般来说,镜像会基于另外的一些基础镜像构建并加上一些额外的自定义功能。比如你可以构建一个基于Ubuntu的镜像,然后在这个基础镜像上面安装一个Apache应用,这样就可以构建成属于我们自己的镜像了。你也可以创建你自己的镜像或者仓库中别人制作好的镜像。构建镜像,创建Dockerfile文件,
      在Dockerfile的每条指令在镜像创建一层,当文件更改并重新构建镜像,更改的层被重建。 相比虚拟化技术,这种创作的镜像轻量化、更小、更快。

    • CONTAINERS
      容器是镜像运行的实例。可以使用Docker API或CLI 去 create, start, stop, move, or delete 一个容器。容器可以连接至一个或者多个网络,连接存储,甚至基于当前状态构建新的镜像。容器的实质是进程,但与直接在宿主机执行的进程不同,容器进行运行于属于自己独立的命名空间。因此容器可以拥有自己的root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户id空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主机运行更加便捷。
  • 安装配置
    docker版本介绍:
    docker-io:docker早期版本,支持到1.13,在centos 6.x系统上只能使用docker-io
    docker-ce:社区docker发行版本
    docker-ee:docker商业版本
    安装:阿里docker-ce配置
# step 1: 安装必要的一些系统工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 添加软件源信息
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新并安装 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 开启Docker服务
sudo service docker start

# 注意:
# 官方软件源默认启用了最新的软件,您可以通过编辑软件源的方式获取各个版本的软件包。例如官方并没有将测试版本的软件源置为可用,你可以通过以下方式开启。同理可以开启各种测试版本等。
# vim /etc/yum.repos.d/docker-ce.repo
#   将 [docker-ce-test] 下方的 enabled=0 修改为 enabled=1
#
# 安装指定版本的Docker-CE:
# Step 1: 查找Docker-CE的版本:
# yum list docker-ce.x86_64 --showduplicates | sort -r
#   Loading mirror speeds from cached hostfile
#   Loaded plugins: branch, fastestmirror, langpacks
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            docker-ce-stable
#   docker-ce.x86_64            17.03.1.ce-1.el7.centos            @docker-ce-stable
#   docker-ce.x86_64            17.03.0.ce-1.el7.centos            docker-ce-stable
#   Available Packages
# Step2 : 安装指定版本的Docker-CE: (VERSION 例如上面的 17.03.0.ce.1-1.el7.centos)
# sudo yum -y install docker-ce-[VERSION]
  • 配置参数
    • unit file:/usr/lib/systemd/system/docker.service
    • 配置文件:/etc/docker/daemon.json,默认文件需自己创建,json格式
[root@xt ~]# cat /etc/docker/daemon.json 
{
 "registry-mirrors": ["https://registry.docker-cn.com"], #镜像加速器
 "insecure-registries":[],#仓库http访问,默认启用安全模式
 "log-driver":"journald" #日志引擎配置

}
  • 启动服务
    • systemctl start docker.service
    • systemctl [enable | status ]docker

参考文档:
阿里云镜像:https://yq.aliyun.com/articles/110806
docker官方文档:https://docs.docker.com/engine/docker-overview/#control-groups