Docker入门基础之使用容器、镜像和注册表_u盘数据
日期:2015-09-08 / 人气: / 来源:网络
一、使用容器、镜像和注册表
本文章共四部分:一、Docker入门基础之使用容器、镜像和注册表;二、Docker入门基础之使用容器维护一致的 IoT开发环境;三、Docker入门基础之将容器部署到 IoT 设备;四、Docker入门基础之集成 IoT 设备与云。
每个 Docker 容器包含一个或多个运行的进程。Docker 容器从一个镜像启动,该镜像指定了以下元素:
-
要在容器内运行的应用程序的配置信息
-
它的依赖项,比如库和共享二进制文件
Docker 使用一种统一的文件系统,将镜像存储为一系列层。层会在构建过程中缓存,这使衍生镜像的构建既快捷又高效。
这种分层方法还意味着 Docker 镜像较小且可移植,可通过将它们发布到公共或私有注册表来轻松共享它们。Docker Hub 是 Docker 镜像存储库的最大注册表;其中列出了 100,000 多个存储库并承载着众多私有存储库。如果您使用 IBM Bluemix 云平台,它支持从 Docker Hub 拉入公共镜像,还支持提供承载的私有镜像存储库,这使您能够在组织内共享私有镜像。
如果使用一种流行的开源框架或服务,您可能能够在 Docker Hub 中找到一个预先构建的公共镜像,许多镜像由与这些项目相关的开源社区来维护。Docker Hub Web 界面有一个较小的官方存储库列表,这是一个精挑细选的存储库列表,包含由 Docker 团队对已知安全漏洞进行了测试的镜像。
避免使用旧的 Docker 镜像,即使这些镜像的来源可靠,因为许多旧镜像仅用于归档和测试用途。如果旧镜像仍得到维护,它们会在 Docker Hub 中被标记为受支持。公共注册表中的大多数镜像都是社区贡献的,可能没有详细备案或维护。怀疑有问题时,可使用一个官方镜像作为基础来创建自己的镜像。
可完成以下步骤来创建镜像:
-
从注册表拉入一个基础镜像
-
交互式地运行一系列命令
-
提交结果作为新镜像
例如,下面的命令列表从 Docker Hub 获取官方的 Ubuntu version 14.04 镜像,从该镜像启动容器,运行一个命令来将 Git 安装到该容器中,然后列出创建的容器的 ID。
清单 1. 创建一个镜像
$ docker pull ubuntu:14.04 $ docker run ubuntu apt-get install -y git $ docker ps -l
可发出下面这条命令来将此容器 (cb23e345fde0) 保存为新镜像(名为 demo/git):$ docker commit cb23e345fde0 demo/git。
要使用 IBM Container Extensions 工具在本地运行 Docker 命令,可将 docker 命令更改为 ice --local。例如,使用此命令:$ ice --local pull ubuntu:14.04
如果需要运行不止一两个命令来设置应用程序环境,您需要创建一个 Dockerfile。Dockerfile 是指定用于构建镜像的一组指令的文本文件。下面这个代码清单中的 Dockerfile 创建了一个运行 Nginx Web 服务器的基础镜像。
清单 2. 创建一个运行 Nginx Web 服务器的基础镜像的 Dockerfile
FROM ubuntu:14.04 RUN apt-get -y update && apt-get install -y nginx RUN mkdir -p /var/www/html EXPOSE 80 EXPOSE 443 WORKDIR /etc/nginx CMD ["nginx"]
每个 Dockerfile 中的第一条指令是 FROM 指令,这表明基础镜像。Dockerfile 中的每个后续指令存储为一个层:
- RUN 指令运行 apt-get 等 Linux 命令。
- ADD 和 COPY 指令将应用程序文件添加到容器中。
- EXPOSE 指令打开端口。
- ENV 指令配置环境变量。
最后,每个 Dockerfile 包含 WORKDIR、ENTRYPOINT 或 CMD 指令,用来指定在该容器启动时,如何和在何处运行该应用程序。
运行 Docker 容器需要极少的开销,所以可将您的应用程序分解为一组在不同的容器中运行的服务,这些容器可在运行时按名称来链接。例如,您可将应用程序拆分为一个运行 Node.js 应用程序的容器,该容器链接到另一个运行 Redis 键值存储的容器。
Docker入门基础之使用容器维护一致的 IoT开发环境
导读:IoT 应用程序适用于各种各样的设备平台,容器可用来捕获一个已知适用于每个设备修订版的开发环境,以及在一个开发团队中共享此环境。
Docker入门基础,IoT开发环境,
作者:管理员
推荐内容 Recommended
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19
相关内容 Related
- 江苏飞浩信息科技期待您的加入07-20
- 江苏飞浩科技欢迎您07-19