1. 为什么使用Docker
      1. 作为一种新兴的虚拟化技术,Docker 跟传统的虚拟化方式相比具有众多的优势,
      2. Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快的多
      3. Docker 对系统资源的利用率很高,一台主机上可以运行数千个 Docker 容器
      4. 容器处理运行其中的应用外,基本不消耗额外的系统资源,使得应用的性能很高,传统虚拟机方式运行10个完全不用的应用可能会起10个虚拟机来部署,而Docker 只需要启动10个隔离的应用即可
      5. Docker可以更快速的交付和部署,大量的节约开发,测试,部署的时间,对开发的运维人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行
      6. 更高效的虚拟化,Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级都恶虚拟化,因此可以实现更高的性能和效率
      7. 更轻松的迁移和扩展,Docker 容器几乎就可以在任意的平台上运行,包括物理及,虚拟机,公有云,私有云,个人电脑,服务器等,这种兼容性可以让用户轻松的把一个应用程序从一个平台直接迁移到另一个平台
    2. Docker环境搭建
      1. Docker的版本
        1. docker 从 2013年3月20日发布Docker 0.1 ,到现在已经发布了多个版本,从2017年 3月开始docker 在原来的基础上分为两个分支版本,Docker CE 和 Docker EE
        2. Docker CE 社区免费版,可永久免费使用
        3. Docker EE 企业版,功能更全,更强调安全,但需付费使用
      2. Docker 的安装
        1. 首先,我们知道 Docker 并不是容器,它是一个管理容器的引擎
        2. Docker 支持 CenterOS 6 及以后的版本;
        3. CentOS7 系统可以通过 yum 进行安装;

    查看是否安装 docker
    yum list installed| grep docker

    1. 安装: yum listall docker -y
    2. 安装后,使用 docker —version / -v 查看 docker 的版本
    3. 卸载 yum remove docker -y
    4. Docker服务启动
      1. 安装之后启动 Docker 服务
        1. 启动:systemctl start docker 或者 service docker start
        2. 停止: systemctl stop docker 或者 Service docker stop
        3. 重启: systemctl restart docker 或者 service docker restart
      2. 检查docker 进程的运行状态

    systemctl status docker 或者 service docker status

    1. 查看 docker 进程 ps -ef |grep docker
    2. Docker 服务信息
      1. docker info 查看 docker 系统信息
      2. docker 查看所有的帮助信息
      3. docker commond —help 查看某个 commond 命令的帮助信息
    3. Docker 使用初体验
      1. Docker 的运行机制
        1. 我们知道 Docker 并不是容器,而只是一个管理容器的引擎;
        2. Docker的底层运行原理:
          Docker 服务启动—— 下载镜像——启动该镜像得到一个容器——容器里运行着我们想要的程序

    image.png

    1. 第一个Docker 容器
      1. 根据 Docker 的运行机制,我们运行第一个Docker 容器
        1. 将Docker服务启动
        2. 下载一个镜像,Docker运行一个容器前需要本地存在有对应的镜像,如果镜像不存在本地,Doker 会从镜像仓库下载,(默认是 Docker Hub 公共注册服务器中的仓库https://hub.docker.com
        3. CentOS下怎么下载(Pull)镜像?
        4. 从 docker hub 官网搜索要使用的镜像,也可以在命令下使用命令搜索要使用的镜像,比如 docker search tomcat 进行搜索,然后下载所需要的镜像
        5. 下载镜像: docker pull tomcat
        6. 运行镜像: docker run tomcat
        7. 显示本地已有的镜像 docker images

    在列出信息中,可以看到几个字段信息
    REPOSITORY: 来自哪个仓库,比如 docker.io/tomcat
    TAG: 镜像的标记,比如 latest
    IMAGE ID :镜像的ID 号(唯一)
    CREATED:创建时间
    SIZE:镜像大小
    (没有连接上)
    Job for docker.service failed because the control process exited with error
    解决办法:
    禁用掉selinux
    vi /etc/sysconfig/selinux
    SELINUX=disabled
    重启即可

    1. 启动容器

    docker run -d tomcat
    默认是前台启动,如果需要后台启动,指定 -d 参数
    通过 ps -ef | grep tomcat 查看,检查 Tocmat 镜像是否启动容器成功

    1. 进入 docker 容器
      1. 进入容器 dcker exec -it cef0d139bfb6 bash
      2. 其中 I 表示交互式的,也就是保持标准输入流打开
      3. t 表示虚拟控制台,分配到一个虚拟控制台
      4. 退出容器 exit
    2. 从客户机访问容器
      1. 从客户机上访问容器,需要有端口映射,docker 容器默认采用桥接模式与宿主机通信,需要将宿主机的ip端口映射到容器的ip 端口上;
      2. 停止容器: docker stop 容器 ID /名称
      3. 启动容器: docker run -d -p 8080:8080 docker.io/tomcat 或容器 id