Docker 学习笔记 (1)

docker: 从docker图标可以看到是一个鲸鱼背着很多像集装箱一样的东西,每一个集装箱里面装的就是我们写的代码及运行环境,无论把集装箱放到哪里,都可以直接使用运行
教程:Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。容器是完全使用沙箱机制,更重要的是容器性能开销极低。
优点: 1、快速,一致地交付您的应用程序。 --开发人员可以通过docker快速的交付整体的代码和所需的运行环境 2、响应式部署和扩展。 --可以部署在开发人员本机、虚拟机、测试环境等 3、在同一硬件上运行更多工作负载。 --同一台物理机或虚拟机可以运行多个项目 使用: docker run ubuntu:15.10 /bin/echo "Hello world" 各个参数解析: docker: Docker 的二进制执行文件。 run: 与前面的 docker 组合来运行一个容器。 ubuntu:15.10 指定要运行的镜像,Docker 首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。 /bin/echo "Hello world": 在启动的容器里执行的命令 以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在 容器里执行 bin/echo "Hello world",然后输出结果。 交互式使用:   我们通过 docker 的两个参数 -i -t,让 docker 运行的容器实现"对话"的能力:   docker run -i -t ubuntu:15.10 /bin/bash   各个参数解析:     -t: 在新容器内指定一个伪终端或终端。     -i: 允许你对容器内的标准输入 进行交互。     我们可以通过运行 exit 命令或者使用 CTRL+D 来退出容器。 启动容器(后台模式)
  使用以下命令创建一个以进程方式运行的容器
    docker run -d ubuntu:15.10 /bin/sh -c "while true; do echo hello world; sleep 1; done"
    输出:2b1b7a428627c51ab8810d541d759f072b4fc75487eed05812646b8534a2fe63
  在输出中,我们没有看到期望的 "hello world",而是一串长字符,这个长字符串叫做容器 ID,对每个容器来说都是唯一的,我们可以通过容器 ID 来查看对应的容器发生了什么。   首先,我们需要确认容器有在运行,可以通过 docker ps 来查看:
    docker ps
    输出:
      CONTAINER ID IMAGE COMMAND ...
      5917eac21c36 ubuntu:15.10 "/bin/sh -c 'while t…" ...
    输出详情介绍:
      CONTAINER ID: 容器 ID。
      IMAGE: 使用的镜像。       COMMAND: 启动容器时运行的命令。       CREATED: 容器的创建时间。       STATUS: 容器状态。        状态有7种:         created(已创建)         restarting(重启中)         running(运行中)         removing(迁移中)         paused(暂停)         exited(停止)         dead(死亡)

      PORTS: 容器的端口信息和使用的连接类型(tcpudp)。       NAMES: 自动分配的容器名称。
  在宿主主机内使用 docker logs 命令,查看容器内的标准输出:     docker logs 2b1b7a428627 停止容器   docker stop <容器 ID> 停止的容器可以通过 docker restart 重启   docker restart <容器 ID> 容器的使用:   获取镜像:     docker pull   创建并进入到容器内:     docker run -it ubuntu /bin/bash
    参数说明:       -i: 交互式操作。       -t: 终端。       ubuntu: ubuntu 镜像。       /bin/bash:放在镜像名后的是命令,这里我们希望有个交互式 Shell,因此用的是 /bin/bash。 启动已停止运行的容器   docker ps -a   docker start <container_id> 后台运行容器   docker run -itd --name <container_name> ubuntu /bin/bash   注:加了 -d 参数默认不会进入容器,想要进入容器需要使用指令 docker exec 进入容器   在使用 -d 参数时,容器启动后会进入后台。此时想要进入容器,可以通过以下指令进入:     docker attach : 使用此方式进入容器后,退出时会到时容器停止     docker exec:推荐大家使用 docker exec 命令,因为此退出容器终端,不会导致容器的停止。 更多参数说明请使用 docker exec --help 命令查看。 导出和导入容器   导出:     docker export [container_id] > test.tar 导出容器 ID 快照到本地文件 test.tar。   导入:     cat docker/test.tar | docker import - test:v1   此外,也可以通过指定 URL 或者某个目录来导入,例如:     docker import http://example.com/exampleimage.tgz example/imagerepo 删除容器   docker rm -f <container id>   此命令可以清理掉所有处于终止状态的容器:docker container prune 示例运行一个 web 应用 1.docker pull training/webapp 2.docker run -d -P training/webapp python app.py 参数说明: -d:让容器在后台运行。 -P:将容器内部使用的网络端口映射到我们使用的主机上。 3.查看 WEB 应用容器 使用 docker ps 来查看我们正在运行的容器: docker ps CONTAINER ID IMAGE COMMAND ... PORTS       d3d5e39ed9d3 training/webapp "python app.py" ... 0.0.0.0:32769->5000/tcp     这里多了端口信息。     PORTS     0.0.0.0:32769->5000/tcp    4.我们也可以通过 -p 参数来设置不一样的端口:     docker run -d -p 5000:5000 training/webapp python app.py     容器内部的 5000 端口映射到我们本地主机的 5000 端口上。    5.网络端口查看的快捷方式     docker port <container id>     输出:5000/tcp -> 0.0.0.0:5000    6.查看 WEB 应用程序日志     docker logs [ID或者名字] 可以查看容器内部的标准输出。          docker logs -f <container id>     参数: -f 让 docker logs 像使用 tail -f 一样来输出容器内部的标准输出。    7.查看 WEB应用程序容器中的进程     docker top <container id 或 container name>       8.检查WEB 应用程序容器的状态信息     docker inspect <container id 或 container name>

  

原文地址:https://www.cnblogs.com/liuwei0824/p/12295966.html