Docker

作者: JackyBA | 来源:发表于2016-10-15 15:20 被阅读0次

    ref: The Doocker Book

    Docker

    Ch 2 安装Docker

    容器是直接运行操作系统内核之上的用户空间。

    Docker核心组件:

    • Docker客户端、服务器端,也成为Docker引擎;
    • Docker镜像;
    • Registry;
    • Docker容器。

    Docker用Registry来保存用户构建的镜像。
    Registry分为:1. 公共;2. 私有。

    Mac OS X Docker安装说明:
    ref: https://docs.docker.com/docker-for-mac/
    按照Docker官网安装Docker.app后需要设置PATH环境变量否则无法找到
    docker命令;
    设置方法:

    vim ~/.bash_profile 
    . .bash_profile
    export PATH=/Applications/Docker.app/Contents/Resources/bin:$PATH
    

    Ch 3 Docker入门

    Docker命令

    • 容器管理
    含义 命令
    创建容器 docker run --name your_container_name -i -t ubuntu /bin/bash
    启动容器 docker start your_container_id_or_name
    重启容器 docker restart your_container_id_or_name
    关闭容器 docker stop your_container_id_or_name
    删除容器 docker rm your_container_id_or_name
    附着会话 docker attach your_container_id_or_name
    强制退出容器 docker kill your_container_id_or_name
    查看详细容器配置 docker inspect your_container_id_or_name
    查看容器安装信息 docker info
    查看正在运行的容器 docker ps
    查看所有容器 docker ps -a
    查看容器正在运行的进程 $ docker top your_container_id_or_name
    查看容器端口映射 docker port
    查看容器日志 docker logs
    • 创建守护式容器
    docker run --name deamon_container_test -d ubuntu /bin/sh -c "while true; do echo Hello world; sleep 1; done"
    
    • 查看容器日志
    docker logs --tail 100 your_container_name
    
    • 镜像管理
    含义 命令
    查看镜像 docker images
    搜索 docker search image_name
    构建镜像 docker build -t your_image dockerfile_dir
    删除镜像 docker rmi images_id
    推送镜像 docker push images_id
    • Docker Networking管理
    含义 命令
    创建网络 docker network create

    Ch 4 构建镜像

    Docker构建镜像的方式:

    1. $ docker commit
    2. $ docker build
    • Dockerfile基于DSL(Domain Specific Language) 语法的指令来构建一个Docker镜像;
    • 一旦有Dockerfile就可以使用$ docker build 命令基于该Dockerfile中的指令构建一个新的镜像;

    Dockerfile语法结构:

    # 我是注释
    COMMAND arguments
    
    • 命令必须大写
    • 命令后跟参数
    • Dockerfile中的指令会严格按照书序从上到下执行,所以应该合理安排指令顺序;
    Dcokerfile 执行流程;
    1. Docker从基础镜像运行一个容器;
    2. 执行一条指令,对容器做出修改;
    3. 执行类似$ docker commit 的操作,提交一个新的镜像层;
    4. Docker在基于刚提交的镜像运行一个新容器;
    5. 执行Dockerfile中的下一条指令,知道所有指令都执行完毕。
    Dockerfile 指令
    命令 含义
    FROM 指定基础镜像
    CMD 指定一个容器启动时要运行的命令,注意:$ docker run 命令可以覆盖CMD命令,CMD命令只能指定一条,如果指定多条则最后一条生效
    RUN 指定镜像被构建时运行的命令
    ENTRYPOINT 与CMD指令类似,但$ docker run命令行指定的任何参数都会被当做参数再次传递给ENTRYPOINT指令中指定的指令
    WORKDIR ENTRYPOINT或CMD命令运行的工作目录
    ENV 在镜像构建过程中设置环境变量
    USER 指定运行镜像的用户,默认:root
    VOLUME 向基于镜像创建的容器添加卷
    ADD 用来指定将构建环境下的文件和目录复制到镜像中
    COPY 复制文件,类似ADD但不会自动提取和解压
    LABEL 为Docker镜像添加元数据
    ONBUILD 能为镜像添加触发器
    • 从新镜像启动容器
    $ docker run -d -p 80 --name web-server jackycser/web-server nginx -g "deamon off;"
    
    • 自动构建
      在GitHub或BitBucket仓库中包含Dockerfile文件并将仓库连接到Docker Hub即可。

    Ch 5 使用Docker测试静态网站

    卷:是在一个或者多个容器内被选定的目录,可以绕过分层的联合文件系统(Union File System),为Docker提供持久数据或者共享数据。
    这意味着对卷的修改会直接生效,并绕过镜像。
    当提交或者创建镜像时,卷不被包含在镜像里。

    • Docker Networking
      Docker Networking:容器之间的连接用网络建立

    5.3 Docker 用于持续集成

    Ch 6 使用Docker构建服务

    6.2 使用Docker构建一个Java应用服务

    Ch 7 Docker 编配和服务发现

    Docker编配:
    服务的自动配置、协作和管理服务的过程。
    在Docker的世界里,编配用来表述一组实践过程,这个过程会管理运行在多个Docker容器里的应用,而这些Docker容器有可能运行在多个宿主主机上。

    • Docker Compose:用一个YAML文件定义一组要启动的容器,以及容器运行时的属性,Docker Compose 称这些容器为“服务”:

    容器通过某些方法并指定一些运行时的属性来和其他容器产生交互。

    • 编配工具功能:
    1. 调度和集群管理
    2. 服务发现
    • Compose
    含义 命令
    启动 docker-compose up
    查看日志 docker-compose logs
    停止 docker-compose stop
    查看进程 docker-compose ps
    删除服务 docker-compose rm

    7.3 Docker Swarm

    Docker Swarm是一个原生的Docker集群管理工具。

    • Swarm 将一组Docker主机作为一个虚拟的Docker主机来管理。

    Ch 8 使用Docker API

    在Docker 生态系统中一共有3种API:

    1. Registry API:提供了与来存储Docker 镜像的 Docker Registry 集成的功能;
    2. Docker Hub API:提供了与Docker Hub集成的功能;
    3. Docker Remote API:提供了与Docker 守护进程进行集成的功能。
      所有这3种API都是RESTful风格的。
    • Docker Remote API 也提供了所有在命令行中能使用的对容器的所有操作。

    相关文章

      网友评论

          本文标题:Docker

          本文链接:https://www.haomeiwen.com/subject/hkbnyttx.html