现如今,Docker已经是开发和运维的必备神器,本文以开发者视角简单介绍一下Docker的基本概念。

一、Docker生态

  1. 介绍及安装
    详见:https://www.docker.com/

    • 镜像
      用于创建 Docker 容器的模板,类似于java中的类
    • 容器
      独立运行的一个或一组应用,类似于java中的对象实例
  2. 学习路径

    • Docker CLI
      适用于管理单个容器
    • Docker Compose
      通过一个.yml配置文件,将所有的容器的部署方法、文件映射、容器连接等等一系列的配置写在一个配置文件里,最后只需要执行docker-compose up命令就会像执行脚本一样的去一个个安装容器并自动部署。
    • Swarm/Kubernetes
      适用于多台机器上管理一个容器集群。详见:https://docs.docker.com/engine/swarm/

二、Docker镜像

镜像tag命名规范:镜像仓库/镜像组/镜像名:镜像版本,如:docker.liming.pub/java:8-alpine

  1. 镜像仓库

  2. 镜像组
    一般为该镜像制作者,如公司名,如fangmou、zhitianxia

  3. 镜像名
    镜像的名称,如果镜像为微服务的话则为微服务名称

  4. 版本
    镜像的版本,默认为latest,可以自定义,gitlab上自动构建的镜像的版本为该gitlab仓库对应的工程分支名(如分支名中有/则以-代替),如:developreleasemasterfeature-xxbug-xx

  5. 镜像操作常用命令

    • 搜索仓库中的镜像 docker search 镜像名称
    • 获取/更新镜像 docker pull 镜像tag
    • 查看所有镜像 docker images
    • 删除镜像 docker rmi 镜像tagid

三、Docker容器

容器为镜像的运行实例。

  1. 常用Docker CLI命令如下

    • 运行容器 docker run 容器名 运行命令
    • 进入容器 docker exec -it 容器名或容器id /bin/bash
    • 查看容器列表 docker ps -a
    • 查看容器详情 docker inspect 容器名或容器id
    • 查看容器运行日志 docker logs 容器名或容器id
    • 停止运行中容器 docker stop 容器名或容器id
    • 删除已停止运行的容器 docker rm 容器名或容器id
    • 启动已停止运行的容器 docker start 容器名或容器id
    • 重启运行中的容器 docker restart 容器名或容器id
    • 其他命令可以在命令行输入docker 查看
  2. 常用Docker Compose命令如下

    • 运行容器组 docker-compose up -d
    • 查看运行的容器组状态 docker-compose ps
    • 查看运行的容器组日志 docker-compose logs
    • 停止运行的容器组 docker-compose stop
    • 停止并删除运行的容器组 docker-compose down
    • 其他命令可以在命令行输入docker-compose 查看
  3. 常用Docker Swarm命令如下

    • 管理swarm docker swarm
    • 管理node docker node
    • 管理service docker service
    • 与Docker Compose结合 docker stack
    • 具体命令用法可以在命令行分别输入以上介绍命令即可查看