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

按用途容器大致可分为两类:服务类容器和工具类的容器。

1. 服务类容器以 daemon 的形式运行,对外提供服务。比如 web server,数据库等。通过 -d 以后台方式启动这类容器是非常合适的。如果要排查问题,可以通过 exec -it 进入容器。

2. 工具类容器通常给能我们提供一个临时的工作环境,通常以 run -it 方式运行,比如:

运行 busybox,run -it 的作用是在容器启动后就直接进入。我们这里通过 wget 验证了在容器中访问 internet 的能力。执行 exit 退出终端,同时容器停止。

工具类容器多使用基础镜像,例如 busybox、debian、ubuntu 等。

容器运行小结

容器运行相关的知识点:

  1. 当 CMD 或 Entrypoint 或 docker run 命令行指定的命令运行结束时,容器停止。
  2. 通过 -d 参数在后台启动容器。
  3. 通过 exec -it 可进入容器并执行命令。

指定容器的三种方法:

  1. 短ID。
  2. 长ID。
  3. 容器名称。 可通过 --name 为容器命名。重命名容器可执行docker rename

容器按用途可分为两类:

  1. 服务类的容器。
  2. 工具类的容器。

下一节讨论容器的其他操作,比如 stop, restart, pause, delete。

时间: 2024-09-21 19:45:10

运行容器的最佳实践 - 每天5分钟玩转 Docker 容器技术(24)的相关文章

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

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

容器 What, Why, How - 每天5分钟玩转Docker容器技术(6)

容器核心知识 本篇通过 Docker 讨论容器的核心知识. 概述 容器核心知识主要回答有关容器 What.Why 和 How 三个问题.其中 How 是重点,将从架构.镜像.容器.网络和存储几个方面进行讲解. What - 什么是容器? 容器是一种轻量级.可移植.自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行.开发人员在自己笔记本上创建并测试好的容器,无需任何修改就能够在生产系统的虚拟机.物理服务器或公有云主机上运行. 容器与虚拟机 谈到容器,就不得不将它与虚拟机进行对比,因

理解容器之间的连通性 - 每天5分钟玩转 Docker 容器技术(34)

通过前面小节的实践,当前 docker host 的网络拓扑结构如下图所示,今天我们将讨论这几个容器之间的连通性. 两个 busybox 容器都挂在 my_net2 上,应该能够互通,我们验证一下: 可见同一网络中的容器.网关之间都是可以通信的. my_net2 与默认 bridge 网络能通信吗? 从拓扑图可知,两个网络属于不同的网桥,应该不能通信,我们通过实验验证一下,让 busybox 容器 ping httpd 容器: 确实 ping 不通,符合预期. "等等!不同的网络如果加上路由应该

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

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

运行第一个 Service - 每天5分钟玩转 Docker 容器技术(96)

上一节我们创建好了 Swarm 集群, 现在部署一个运行 httpd 镜像的 service,执行如下命令: docker service create --name web_server httpd 部署 service 的命令形式与运行容器的 docker run 很相似,--name 为 service 命名,httpd 为镜像的名字. 通过 docker service ls 可以查看当前 swarm 中的 service. REPLICAS 显示当前副本信息,0/1 的意思是 web_

写在最前面 - 每天5分钟玩转Docker容器技术(1)

写在最前面 <每天5分钟玩转Docker容器技术>是一个有关容器技术的教程,有下面两个特点: 系统讲解当前最流行的容器技术 从容器的整个生态环境到各种具体的技术,从整体到细节逐一讨论. 重实践并兼顾理论 从实际操作的角度带领大家学习容器技术. 为什么要写这个 简单回答是:容器技术非常热门,但门槛高. 容器技术是继大数据和云计算之后又一炙手可热的技术,而且未来相当一段时间内都会非常流行. 对 IT 行业来说,这是一项非常有价值的技术.而对 IT 从业者来说,掌握容器技术是市场的需要,也是提升自我

部署 Graylog 日志系统 - 每天5分钟玩转 Docker 容器技术(92)

Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集.检索.可视化 Dashboard.本节将实践用 Graylog 来管理 Docker 日志. Graylog 架构 Graylog 架构如下图所示: Graylog 负责接收来自各种设备和应用的日志,并为用户提供 Web 访问接口. Elasticsearch 用于索引和保存 Graylog 接收到的日志. MongoDB 负责保存 Graylog 自身的配置信息. 与 ELK 一样,Graylog 的部署方案很灵

Swarm 如何存储数据?- 每天5分钟玩转 Docker 容器技术(103)

service 的容器副本会 scale up/down,会 failover,会在不同的主机上创建和销毁,这就引出一个问题,如果 service 有要管理的数据,那么这些数据应该如何存放呢? 选项一:打包在容器里. 显然不行.除非数据不会发生变化,否则,如何在多个副本直接保持同步呢? 选项二:数据放在 Docker 主机的本地目录中,通过 volume 映射到容器里. 位于同一个主机的副本倒是能够共享这个 volume,但不同主机中的副本如何同步呢? 选项三:利用 Docker 的 volum

Weave Scope 多主机监控 - 每天5分钟玩转 Docker 容器技术(81)

除了监控容器,Weave Scope 还可以监控 Docker Host. 点击顶部 HOSTS 菜单项,地图将显示当前 host. 与容器类似,点击该 host 图标将显示详细信息. host 当前的资源使用情况和历史曲线一览无余.除此之外也能很方便地查看 host 上运行的进程和容器列表,点击容器名字还可以打开此容器的信息页面. host 页面上部有一个按钮,点击可直接打开 host 的 shell 窗口,这个远程管理功能真的很贴心. 多主机监控 前面我们已经领略了 Weave Scope