0%

容器技术-Docker

docker 容器学习

Docker 简介

Docker 是一个能够把开发的应用程序自动部署到容器的开源引擎。

  • 提供简单、轻量的建模方式
  • 职责的逻辑分离
  • 快速、高效的开发生命周期
  • 鼓励使用面向服务的架构

Docker 组件

  • Docker 客户端和服务器
    是一个客户-服务器(c/s)架构的程序。Docker客户端只需向Docker服务器或守护进程发出请求,服务器或守护进程将完成所有工作并返回结果。
  • Docker 镜像
    镜像是构建 Docker 世界的基石,用户基于镜像来运行自己的容器。镜像也是 Docker 生命周期中的 构建 部分。镜像是基于联合文件系统的一种层式 的结构,由一系列指令一步一步构建出来。
  • Registry
    Docker 用 Registry 来保存用户构建的镜像。分为公有和私有两种。Docker 公司运营的公共 Registry 叫做 Docker Hub
  • 容器
    Docker 可以构建和部署容器。容器是基于镜像启动起来的,容器可以运行一个或多个进程。也可以认为,镜像是 Docker 生命周期中的构建或打包阶段, 容器是启动或执行阶段。

用 Docker 能做什么

  • 加速本地开发和构建流程,使其更加高效、更加轻量化。
  • 能够让独立服务器或应用程序在不同的环境中,得到相同的运行结构。
  • 用Docker创建隔离的环境来进行测试。
  • Docker可以让开发者先在本机上构建一个复杂的程序或架构来进行测试,而不是一开始就在生产环境部署、测试。
  • 构建一个多用户的平台即服务(PaaS)基础设施。
  • 高性能、超大规模的宿主机部署。
  • 提供软件即服务(SaaS)应用程序。
  • 为开发、测试提供一个轻量级的独立沙盒环境,或将独立的沙盒环境用于技术教学。

安装 Docker

安装教程请查看环境搭建- -Docker

Docker入门

  • 确保Docker已经就绪

    1
    2
    # 第一步,查看 docker 程序是否存在,功能是否正常;
    docker info # 容器和镜像的数量、Docker 使用的执行驱动和存储驱动、Docker 基本配置
  • 运行第一个容器

    1
    2
    # 第二步,创建新容器;(拥有自己的IP地址)
    docker run -i -t centos /bin/bash # -i 标志保证容器中 STDIN 是开启的,-t 分配一个伪 tty 终端
  • 使用第一个容器

    1
    2
    3
    4
    # 第三步,获取容器的主机名;
    hostname # 或者 cat /etc/hosts
    # 第四步,获取IP
    ip a
  • 容器命名

    1
    docker run --name bob_the_container -i -t centos /bin/bash
  • 退出

    1
    exit
  • 重新启动已停止的容器

    1
    2
    3
    docker start test  # 名称
    docker start aa3f # id
    docker restart 名称/id
  • 使用容器

    1
    2
    3
    # 使用 attach 方式访问容器,此方式连接到容器中,使用 exit 会停止容器
    docker attach test # 名称或者id
    # 使用
  • 创建守护式容器

    1
    docker run --name test -d centos /bin/sh -c “while true;do echo hello word; sleep ;done”
  • 查看

    • 日志

      1
      2
      3
      docker logs test
      docker logs test -f # 持续监控
      docker logs test -ft # 以时间戳持续监控
    • 容器

      1
      2
      docker ps  # 查看运行中的容器
      docker images # 查看镜像列表
  • 删除容器

    1
    docker rm test

学习网站: [Docker和Kubernets实践指南][learn_docker_k8s]


learn_docker_k8s