学习Docker(2017-10-5)

标签: Docker
291人阅读 评论(0) 收藏 举报
分类:

本节目录:
- 镜像的实现原理
1. 操作 Docker 容器
- 启动容器
- 后台(background)运行
- 终止容器
- 进入容器
- 导出和导入容器
- 删除容器
- 清理所有处于终止状态的容器

镜像的实现原理

Docker 镜像是怎么实现增量的修改和维护的?每个镜像都由很多层次构成,
Docker 使用 Union FS 将这些不同的层结合到一个镜像中去。

通常 Union FS 有两个用途:
1. 一方面可以实现不借助 LVM、RAID 将多个 disk 挂到同一个目录下

  1. 另一个更常用的就是将一个只读的分支和一个可写的分支联合在一起,Live CD 正是基于此方法可以允许在镜像不变的基础上允许用户在其上进行一些写操作。Docker 在 AUFS 上构建的容器也是利用了类似的原理。

关于 UFS

操作 Docker 容器

容器是 Docker 又一核心概念

容器对应虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他操作系统)和跑在上面的应用。下面学习容器的创建、启动和停止等

启动容器

  1. 基于镜像创建一个容器并启动
  2. 将在终止状态(stopped)的容器重新启动

实例1:

docker run ubuntu:14.04 /bin/echo 'Hello world' Hello world

docker run -t -i ubuntu:14.04 /bin/bash

-t 选项让 Docker 分配一个伪终端,并绑定到容器的标准输入上,-i 则让容器的标准输入保持打开,进入交互终端,用户可以通过所创建的终端来输入命令,

当利用 docker run 来创建容器时, Docker 在后台运行的标准操作包括:
1. 检查本地是否存在指定镜像,不存在就从公有仓库下载 利用镜像创建并启动一个容器
2. 分配一个文件系统,并在只读的镜像层外面挂载一层 可读写层
3. 从宿主主机配置的网桥接口中桥接一个虚拟接口到容器中去,从地址池配置一个 ip 地址给容器
4. 执行用户指定的应用程序
5. 执行完毕后容器被终止

关于 pwd

实例2:
利用 docker start 命令,直接将一个已经终止的容器启动运行。

容器的核心是为所执行的应用程序,所需要的资源都是应用程序运行所必须的。在终端中利用 pstop 来查看进程信息。

可见,容器中仅运行了指定的 bash 应用。这种特点使得 Docker 对资源利用率极高,体现了 Docker 轻量级虚拟化

top:

后台(background)运行

通常的时候需要让 Docker 在后台运行,而不是直接将执行结果输出在当前宿主机下。此时,可以通过添加 -d 参数来实现

实例:

docker run ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

容器会把输出的结果打印到宿主机上面

使用 -d参数运行容器

docker run -d ubuntu:14.04 /bin/sh -c "while true; do echo hello world; sleep 1; done"

使用 -d 参数启动后会返回一个唯一的 id ,也可以通过 docker ps 命令来查看容器信息

要获取容器的输出信息,可以通过 docker logs [container ID or Names]

终止容器

使用 docker stop 命令来终止一个运行中的容器
终止状态的容器可以用 docker ps -a 命令看到。

现在我们可以用我们刚才讲的docker start 重启结束的容器

docker restart 可以结束正在运行的容器,然后重新启动

进入容器

在使用 -d 参数时,容器启动后进入后台。某些时候需要进入容器进行操作:
1. attach 命令
2. nsenter 命令

实例1:
attach 命令

当多个窗口同时 attach 到同一个容器的时候,所以窗口都会同步显示。当某个窗口因命令阻塞时,其他窗口也无法执行操作。

实例2:
nsenter 命令

书上介绍的都是 Linux 系统下进行的,因为自己电脑上 windows 这一部分,先暂停

导出和导入容器

导出容器
导出本地容器

docker ps -a

查询已经停止的容器 ID

docker export commitID > xxx.tar


导入容器快照

实例:

docker import - test/ubuntu:v1.0

删除容器

docker rm命令删除处于终止状态的容器。 -f 强制删除容器,用在运行的容器中。

清理所有处于终止状态的容器

docker rm &(docker ps -a -q)

注意;这个命令其实会尝试删除所有的包括还运行中的容器,不过就像上面提过的 docker rm 默认不会删除运行中的容器

查看评论

Docker实战视频教程下载|Docker视频教程

  • 2017年02月23日 15:01
  • 2KB
  • 下载

docker 架构 与原理

注个人理解: docker 的镜像是位于最底层,但使用宿主主机的操作系统内核,我们可以看到docker的镜像十分的小,原因是docker镜像只是一些环境的配置,所以十分的小,他是只能读不能写的...
  • u013378306
  • u013378306
  • 2017-01-04 19:14:31
  • 7188

2017 Docker技术入门与实战

  • 2017年06月28日 22:02
  • 47.1MB
  • 下载

学习Docker(2017-10-3)

本节目录: 1. ENV 设置环境变量 2. ARG 构建参数 3. VOLUME 定义匿名类 4. EXPOSE 声明端口 5. USER 指定当前用户 6. HEALTHCHECK 检...
  • qq_34260009
  • qq_34260009
  • 2017-10-03 17:20:21
  • 196

学习Docker(2017-10-9)

本节目录: - 高级网络配置 - 快速配置指南 - 配置DNS - 容器访问控制 - 端口映射实现 - 配置 docker0 网桥 - 自...
  • qq_34260009
  • qq_34260009
  • 2017-10-10 19:14:08
  • 164

学习Docker(2017-10-7)

本节目录: 1. 数据管理 - 数据卷 - 数据卷容器 - 备份、恢复、迁移数据卷数据管理本小节学习在 Docker 内部以及容器之间管理数据,主要方式: 1. 数据...
  • qq_34260009
  • qq_34260009
  • 2017-10-07 12:03:18
  • 116

2017-10-5

国庆中秋八天长假,在家修哉悠哉,哇,幸福。 同时学习一下ssm框架,要为无人车搭建一个服务器,支持通信调度。 8号再去学校,可以的。...
  • hyp2437701
  • hyp2437701
  • 2017-10-05 10:24:11
  • 45

docker学习资料帅帅哒

  • 2018年04月13日 17:36
  • 85.18MB
  • 下载

Docker学习总结(10)——10分钟玩转Docker

1、前言 进入云计算的时代,各大云提供商AWS,阿里云纷纷推出针对Docker的服务,现在Docker是十分火爆,那么Docker到底是什麽,让我们来体验一下。 2、Docker是什麽 ...
  • u012562943
  • u012562943
  • 2016-07-22 09:29:43
  • 5152
    个人资料
    等级:
    访问量: 6770
    积分: 380
    排名: 20万+
    最新评论
  • 菜鸟Python(3)

    bigdatazjh: 博主您好,我按照这个步骤自己实现了下,结果报错:“Unable to create record:...