限制容器的 Block IO – 每天5分钟玩转 Docker 容器技术(29)

限制容器的 Block IO – 每天5分钟玩转 Docker 容器技术(29)

4个月前 (03-21)

前面学习了如何限制容器对内存和CPU的使用,本节我们来看 Block IO。 Block IO 是另一种可以限制容器使用的资源。Block IO 指的是磁盘的读写,docker 可通过设置权重、限制 bps 和 iops 的方式控制容器读写磁盘的带宽,下面分别讨论。 注:目前 Block IO 限额只对 direct IO(不使用文件缓存)有效。 block IO 权重 默认情况下,所有容器能平等

限制容器对CPU的使用 – 每天5分钟玩转 Docker 容器技术(28)

限制容器对CPU的使用 – 每天5分钟玩转 Docker 容器技术(28)

4个月前 (03-14)

上节学习了如何限制容器对内存的使用,本节我们来看CPU。 默认设置下,所有容器可以平等地使用 host CPU 资源并且没有限制。 Docker 可以通过 -c 或 --cpu-shares 设置容器使用 CPU 的权重。如果不指定,默认值为 1024。 与内存限额不同,通过 -c 设置的 cpu share 并不是 CPU 资源的绝对数量,而是一个相对的权重值。某个容器最终能分配到的 CPU 资

限制容器对内存的使用 – 每天5分钟玩转 Docker 容器技术(27)

限制容器对内存的使用 – 每天5分钟玩转 Docker 容器技术(27)

4个月前 (03-14)

一个 docker host 上会运行若干容器,每个容器都需要 CPU、内存和 IO 资源。对于 KVM,VMware 等虚拟化技术,用户可以控制分配多少 CPU、内存资源给每个虚拟机。对于容器,Docker 也提供了类似的机制避免某个容器因占用太多资源而影响其他容器乃至整个 host 的性能。 内存限额 与操作系统类似,容器可使用的内存包括两部分:物理内存和 swap。 Docker 通过下面两

一张图搞懂容器所有操作 – 每天5分钟玩转 Docker 容器技术(26)

一张图搞懂容器所有操作 – 每天5分钟玩转 Docker 容器技术(26)

4个月前 (03-14)

前面我们已经讨论了容器的各种操作,对容器的生命周期有了大致的理解,下面这张状态机很好地总结了容器各种状态之间是如何转换的。 如果掌握了前面的知识,要看懂这张图应该不难。不过有两点还是需要补充一下: 1、可以先创建容器,稍后再启动。  ① docker create 创建的容器处于 Created 状态。 ② docker start 将以后台方式启动容器。 docker run 命令实际上是 do

容器常用操作 – 每天5分钟玩转 Docker 容器技术(25)

容器常用操作 – 每天5分钟玩转 Docker 容器技术(25)

4个月前 (03-06)

前面讨论了如何运行容器,本节学习容器的其他常用操作。 stop/start/restart 容器 通过 docker stop 可以停止运行的容器。 容器在 docker host 中实际上是一个进程,docker stop 命令本质上是向该进程发送一个 SIGTERM 信号。如果想快速停止容器,可使用 docker kill 命令,其作用是向容器进程发送 SIGKILL 信号。 对于处于停止状态

运行容器的最佳实践 – 每天5分钟玩转 Docker 容器技术(24)

运行容器的最佳实践 – 每天5分钟玩转 Docker 容器技术(24)

5个月前 (03-05)

按用途容器大致可分为两类:服务类容器和工具类的容器。 1、服务类容器以 daemon 的形式运行,对外提供服务。比如 web server,数据库等。通过 -d 以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec -it 进入容器。 2、工具类容器通常给能我们提供一个临时的工作环境,通常以 run -it 方式运行,比如: 运行 busybox,run -it 的作用是在容器启

两种进入容器的方法 – 每天5分钟玩转 Docker 容器技术(23)

两种进入容器的方法 – 每天5分钟玩转 Docker 容器技术(23)

5个月前 (03-01)

我们经常需要进到容器里去做一些工作,比如查看日志、调试、启动其他进程等。有两种方法进入容器:attach 和 exec。 docker attach 通过 docker attach 可以 attach 到容器启动命令的终端,例如: 这次我们通过 “长ID” attach 到了容器的启动命令终端,之后看到的是echo 每隔一秒打印的信息。 注:可通过 Ctrl+p 然后 Ctrl+q 组合键退出

如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)

如何运行容器?- 每天5分钟玩转 Docker 容器技术(22)

5个月前 (03-01)

上一章我们学习了如何构建 Docker 镜像,并通过镜像运行容器。本章将深入讨论容器:学习容器的各种操作,容器各种状态之间如何转换,以及实现容器的底层技术。 运行容器 docker run 是启动容器的方法。在讨论 Dockerfile 时我们已经学习到,可用三种方式指定容器启动时执行的命令: CMD 指令。 ENTRYPOINT 指令。 在 docker run 命令行中指定。 例如下面的例子:

Docker 镜像小结 – 每天5分钟玩转 Docker 容器技术(21)

Docker 镜像小结 – 每天5分钟玩转 Docker 容器技术(21)

5个月前 (03-01)

本节我们对 Docker 镜像做个小结。 这一部分我们首先讨论了镜像的分层结构,然后学习了如何构建镜像,最后实践使用 Docker Hub 和本地 registry。 下面是镜像的常用操作子命令: images    显示镜像列表 history   显示镜像构建历史 commit    从容器创建新镜像 build     从 Dockerfile 构建镜像 tag       给镜像打 tag

搭建本地 Registry – 每天5分钟玩转 Docker 容器技术(20)

搭建本地 Registry – 每天5分钟玩转 Docker 容器技术(20)

5个月前 (03-01)

Docker Hub 虽然非常方便,但还是有些限制,比如:        需要 internet 连接,而且下载和上传速度慢。        上传到 Docker Hub 的镜像任何人都能够访问,虽然可以用私有 repository,但不是免费的。        安全原因很多组织不允许将镜像放到外网。 解决方案就是搭建本地的 Registry。 Docker 已经将 Registry 开源了,同时

使用公共 Registry – 每天5分钟玩转 Docker 容器技术(19)

使用公共 Registry – 每天5分钟玩转 Docker 容器技术(19)

6个月前 (01-29)

保存和分发镜像的最直接方法就是使用 Docker Hub。 Docker Hub 是 Docker 公司维护的公共 Registry。用户可以将自己的镜像保存到 Docker Hub 免费的 repository 中。如果不希望别人访问自己的镜像,也可以购买私有 repository。 除了 Docker Hub,quay.io 是另一个公共 Registry,提供与 Docker Hub 类似的

镜像命名的最佳实践 – 每天5分钟玩转 Docker 容器技术(18)

镜像命名的最佳实践 – 每天5分钟玩转 Docker 容器技术(18)

6个月前 (01-28)

我们已经学会构建自己的镜像了。接下来的问题是如何在多个 Docker Host 上使用镜像。 这里有几种可用的方法: 用相同的 Dockerfile 在其他 host 构建镜像。 将镜像上传到公共 Registry(比如 Docker Hub),Host 直接下载使用。 搭建私有的 Registry 供本地 Host 使用。 第一种方法没什么特别的,前面已经讨论很多了。我们将讨论如何使用公共和私有

RUN vs CMD vs ENTRYPOINT – 每天5分钟玩转 Docker 容器技术(17)

RUN vs CMD vs ENTRYPOINT – 每天5分钟玩转 Docker 容器技术(17)

6个月前 (01-16)

RUN、CMD 和 ENTRYPOINT 这三个 Dockerfile 指令看上去很类似很容易混淆。本节将通过实践详细讨论它们的区别。 简单的说 (1)RUN 执行命令并创建新的镜像层RUN 经常用于安装软件包。 (2)CMD 设置容器启动后默认执行的命令及其参数但 CMD 能够被 docker run 后面跟的命令行参数替换。 (3)ENTRYPOINT 配置容器启动时运行的命令。 下面我们详细

Dockerfile 常用指令 – 每天5分钟玩转 Docker 容器技术(16)

Dockerfile 常用指令 – 每天5分钟玩转 Docker 容器技术(16)

6个月前 (01-16)

是时候系统学习 Dockerfile 了。 下面列出了 Dockerfile 中最常用的指令,完整列表和说明可参看官方文档。 FROM 指定 base 镜像。 MAINTAINER 设置镜像的作者,可以是任意字符串。 COPY 将文件从 build context 复制到镜像。 COPY 支持两种形式: (1)COPY src dest (2)COPY ["src", "dest"] 注意:src

调试 Dockerfile – 每天5分钟玩转 Docker 容器技术(15)

调试 Dockerfile – 每天5分钟玩转 Docker 容器技术(15)

6个月前 (01-16)

包括 Dockerfile 在内的任何脚本和程序都会出错。有错并不可怕,但必须有办法排查,所以本节讨论如何 debug Dockerfile。 先回顾一下通过 Dockerfile 构建镜像的过程: (1)从 base 镜像运行一个容器。 (2)执行一条指令,对容器做修改。 (3)执行类似 docker commit 的操作,生成一个新的镜像层。 (4)Docker 再基于刚刚提交的镜像运行一个新

镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)

镜像的缓存特性 – 每天5分钟玩转 Docker 容器技术(14)

6个月前 (01-15)

上一节我们学习了镜像的分层结构,今天讨论镜像的缓存特性。 Docker 会缓存已有镜像的镜像层,构建新镜像时,如果某镜像层已经存在,就直接使用,无需重新创建。 举例说明。 在前面的 Dockerfile 中添加一点新内容,往镜像中复制一个文件: root@ubuntu:~# ls           ① Dockerfile  testfile root@ubuntu:~# root@ubuntu

Dockerfile 构建镜像 – 每天5分钟玩转容器技术(13)

Dockerfile 构建镜像 – 每天5分钟玩转容器技术(13)

6个月前 (01-15)

Dockerfile 是一个文本文件,记录了镜像构建的所有步骤。 第一个 Dockerfile 用 Dockerfile 创建上节的 ubuntu-with-vi,其内容则为: 下面我们运行 docker build 命令构建镜像并详细分析每个细节。 root@ubuntu:~# pwd         ① /root root@ubuntu:~# ls          ② Dockerfile

构建镜像 – 每天5分钟玩转容器技术(12)

构建镜像 – 每天5分钟玩转容器技术(12)

6个月前 (01-15)

对于 Docker 用户来说,最好的情况是不需要自己创建镜像。几乎所有常用的数据库、中间件、应用软件等都有现成的 Docker 官方镜像或其他人和组织创建的镜像,我们只需要稍作配置就可以直接使用。 使用现成镜像的好处除了省去自己做镜像的工作量外,更重要的是可以利用前人的经验。特别是使用那些官方镜像,因为 Docker 的工程师知道如何更好的在容器中运行软件。 当然,某些情况下我们也不得不自己构建镜

镜像的分层结构 – 每天5分钟玩转容器技术(11)

镜像的分层结构 – 每天5分钟玩转容器技术(11)

6个月前 (01-14)

Docker 支持通过扩展现有镜像,创建新的镜像。 实际上,Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的。比如我们现在构建一个新的镜像,Dockerfile 如下: ① 新镜像不再是从 scratch 开始,而是直接在 Debian base 镜像上构建。 ② 安装 emacs 编辑器。 ③ 安装 apache2。、 ④ 容器启动时运行 bas

base 镜像 – 每天5分钟玩转容器技术(10)

base 镜像 – 每天5分钟玩转容器技术(10)

6个月前 (01-11)

上一节我们介绍了最小的 Docker 镜像本节讨论 base 镜像。 base 镜像有两层含义 1、不依赖其他镜像从 scratch 构建。 2、其他镜像可以之为基础进行扩展。 所以能称作 base 镜像的通常都是各种 Linux 发行版的 Docker 镜像比如 Ubuntu, Debian, CentOS 等。 我们以 CentOS 为例考察 base 镜像包含哪些内容。 下载镜像 docke

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册

扫一扫二维码分享