Docker的安装与使用

Docker的安装与使用

What Docker

名称 含义
中文名 应用容器引擎
外文名 Docker
类 别 操作系统层虚拟化
许可协议 Apache License 2.0
发行日期 2013年
编程语言 Go

思想来源- -集装箱

  • Docker的三要素
    • 镜像

      Docker 镜像是一个特殊的文件系统,除了提供容器运行时所需的程序、库、资源、配置等文件外,还包含了一些为运行时准备的一些配置参数(如匿名卷、环境变量、用户等)。镜像不包含任何动态数据,其内容在构建之后也不会被改变。

    • 容器

      镜像(Image)和容器(Container)的关系,就像是面向对象程序设计中的类和实例一样,镜像是静态的定义,容器是镜像运行时的实体。容器可以被创建、启动、停止、删除、暂停等。
      容器的实质是进程,但与直接在宿主执行的进程不同,容器进程运行于属于自己的独立的 命名空间。因此容器可以拥有自己的 root文件系统、自己的网络配置、自己的进程空间,甚至自己的用户 ID 空间。容器内的进程是运行在一个隔离的环境里,使用起来,就好像是在一个独立于宿主的系统下操作一样。这种特性使得容器封装的应用比直接在宿主运行更加安全。

    • 仓库

      镜像构建完成后,可以很容易的在当前宿主上运行,但是,如果需要在其它服务器上使用这个镜像,我们就需要一个集中的存储、分发镜像的服务,Docker Registry 就是这样的服务。

Docker的安装

1.使用 Homebrew 来安装 Docker
2.手动下载安装

点击链接 Stable 下载

Docker的使用

详细解说

  • 检查版本

    确保你的版本docker,docker-compose以及docker-machine均达到最新和兼容Docker.app,如果您运行的是不同版本,则输出可能会有所不同。

    • docker --version
    • docker-compose --version
    • docker-machine --version
      Docker的安装与使用
  • 镜像加速

    鉴于网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com

    Docker的安装与使用 之后我们可以通过 docker info 来查看是否配置成功。

    Docker的安装与使用

  • 案例

    • 案例1
      • 拉取hello-world镜像:docker pull hello-world
      • 查看hello-world镜像信息:docker images hello-world
      • 根据镜像生成对应容器:docker run hello-world
      • 查看当前所有容器:docker ps -a
      • 也可以根据镜像生成一个具体名称的镜像
        • 先删除当前容器:docker rm 60
          Docker的安装与使用
        • 如果当前容器正在运行,要删除这个容器,则使用命令:docker rm -f 60
        • 使用镜像生成具体名称的容器:docker run --name qingqing hello-world
      • 关于更多的docker run的命令可以使用来查看:docker run --help
    • 案例2
      • 启动docker的web服务:
        docker pull nginx

        docker run -d -p 80:80 --name webserver nginx
        -p参数是使用宿主机的80映射容器的80端口

      • 交互式终端方式进入 webserver容器:docker exec -it webserver bash

      • 修改nginx的显示页面:
        echo '<h1>Hello, Docker!</h1>' > /usr/share/nginx/html/index.html

        exit

      • 修改了容器的文件,也就是改动了容器的存储层。我们可以通过 docker diff:docker diff webserver

      • 使用docker commit生成镜像:docker commit --author "qingqing<[email protected]>" --message "修改了默认网页" webserver nginx:v2

      • 查看当前nginx镜像:docker images nginx
        Docker的安装与使用

      • 查看当前所有的容器,包括运行的和停止的:docker ps -a

      • 启动新的容器:docker run --name newwebserver -d -p 80:80 nginx:v2

      • 浏览器访问:localhost