资讯专栏INFORMATION COLUMN

Flux7 Docker 系列教程(一):Docker 简介

yacheng / 2710人阅读

摘要:本系列教程翻译自,系列共有九篇,本文译自第一篇。,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。本篇文章是系列教程的第一篇。镜像只读的容器模板,简言之就是系统镜像文件。首先,向发出请求创建一个镜像并且指定容器内要运行的命令。

本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第一篇 Part 1: An Introduction。
该系列所有文章将参考其他学习资料翻译,也会加入自己的学习作为部分注解。如有错误,欢迎指正。

Docker,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。Docker 和 Java 一样,号称“一次构建,一次配置,即可到处运行”(build once, configure once and run anywhere)。本篇文章是 Flux7 Docker 系列教程的第一篇。随着教程的深入,我们将会在以后慢慢探讨 Docker 带来的优势和如何将 Docker 做到最大化的利用。

我们将在 6-7 周的时间内学习 Docker。(译者注:其实 2-3 天就能完成这系列的教程我会乱说…)

这篇文章是 Docker 系列教程的基础:Docker 的概念、安装和如何开始使用。

Docker 的特点

所有介绍一种新语言、新技术的文章开头都会介绍该技术的出众之处,本篇文章也不例外。作为当前捧得比较红的虚拟化技术,Docker 的特色包括但不仅限于:

飞快的运行速度和优雅的抽象框架

廉价

低 CPU 和内存使用

启动、关闭速度快

可以用来作为云计算的基础

Docker 应用的实例:微博红包:大规模 Docker 集群实践经验分享
Docker 组件/元素

Docker 有基本组件和元素各三个,视频 Docker Onboarding(请自带梯子)可以让你快速弄清三者之间的关系。

Docker Client:用户和 Docker 守护进程进行通信的接口,也就是 docker 命令。

Docker 守护进程:宿主机上用于用户应答用户请求的服务。

Docker Index:用户进行用户的私有、公有 Docker 容器镜像托管,也就是 Docker 仓库。

Docker 容器:用于运行应用程序的容器,包含操作系统、用户文件和元数据。

Docker 镜像:只读的 Docker 容器模板,简言之就是系统镜像文件。

DockerFile:进行镜像创建的指令文件。

在学习 Docker 组件之前,先来看一下 Docker 底层到底是由什么组成的:

Namespace:隔离技术的第一层,确保 Docker 容器内的进程看不到也影响不到 Docker 外部的进程。

Control Groups:LXC 技术的关键组件,用于进行运行时的资源限制。

UnionFS(文件系统):容器的构件块,创建抽象层,从而实现 Docker 的轻量级和运行快速的特性。

关于 CGroup 和 namespace,可以参考酷壳的这两篇文章:
Docker基础技术:Linux Namespace(上)
Docker基础技术:Linux Namespace(下)
Docker基础技术:Linux CGroup
步骤简述

运行任何应用都必须按照以下两个步骤来:

创建一个镜像文件

运行容器

这些操作是由 Docker Client 来执行的,Docker Client 一般指 docker 命令。首先,Docker Client 向 Docker Daemon 发出请求创建一个镜像、并且指定容器内要运行的命令。当 Daemon 接收到到信号后,便会执行以下操作:

1. 创建一个镜像文件

Docker 镜像相当于一个只读的模板文件,保存着运行容器所需要的所有的配置、文件;每次启动,都会以基础的 Docker 镜像为模板,按照 Dockerfile 的指令,建立一个新的适用于你自己的 Dokcer 镜像:实际上是在这个基础镜像上建立了一个新的应用层。

自己创建的 Docker 镜像可以推送到 Docker Index 中心,然后提供给他人使用。Docker Index 提供了公有库和私有库两种形式,私有库需要付费,大概 $7-$50 不等。和 GitHub 一样,公有库对所有人可见,私有库只对自己可见。docker 命令可以用来搜索 Docker Index 的镜像。

2. 运行容器

容器被运行后,会在原有的镜像上创建一个可读写的层,容器设置完毕网络之后便可以运行应用了。

以上的描述可能会非常抽象:接下来的教程会使用运行在 Ubuntu 上的 Docker 实例来进行深入了解。

安装 Docker

Flux7 原文采用稳定的 Linux 服务器版本 Ubuntu 12.04 LTS 作为示例环境,安装 Docker 的方法如下:

检查 apt 系统的是否有 https 模块:检查文件 /usr/lib//apt/methods/https,如果不存在这个文件,就需要安装 apt-transport-https 软件包。

将 Docker 仓库的密钥加入本地的 keychain,仓库密钥:hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

将 Docker 仓库的软件源加入本地 apt 的软件源列表中

安装 lxc-docker 软件包

验证安装:执行 sudo docker run hello-world,输出 Hello from Docker. 即为成功安装 Docker。

以上是原文安装方法,译者推荐使用 Ubuntu 14.04 LTS 作为示例,安装方法如下:

Ubuntu 上的 Docker 分为 Ubuntu 官方维护的版本和 Docker 官方维护的版本:

Ubuntu 版 Docker

一条命令安装 Docker:

sudo apt-get install docker.io
Docker 版 Docker

也是一条命令:

wget -qO- https://get.docker.com/ | sh

Ubuntu 版 Docker 和 Docker 版 Docker 的区别在于,一个收纳 Ubuntu 团队认为稳定的版本,一个收纳 Docker 团队认为稳定的版本。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/26397.html

相关文章

  • Flux7 Docker 系列教程):Docker 简介

    摘要:本系列教程翻译自,系列共有九篇,本文译自第一篇。,一种新的容器化技术,因为轻量级和便携化而受到广泛关注。本篇文章是系列教程的第一篇。镜像只读的容器模板,简言之就是系统镜像文件。首先,向发出请求创建一个镜像并且指定容器内要运行的命令。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第一篇 Part 1: An Introduction。...

    zhaofeihao 评论0 收藏0
  • Flux7 Docker 系列教程(二):必备的 15 条命令

    摘要:本系列教程翻译自,系列共有九篇,本文译自第二篇。总结本章知识介绍了最基本的十五个命令,接下来的教程将会陆续介绍如何在中运行一个应用以及其他的命令。接下来会在本系列教程结束后补充几篇应用的实例。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第二篇 Part 2: The 15 Commands。 该系列所有文章将参考其他学习...

    chemzqm 评论0 收藏0
  • Flux7 Docker 系列教程(二):必备的 15 条命令

    摘要:本系列教程翻译自,系列共有九篇,本文译自第二篇。总结本章知识介绍了最基本的十五个命令,接下来的教程将会陆续介绍如何在中运行一个应用以及其他的命令。接下来会在本系列教程结束后补充几篇应用的实例。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自第二篇 Part 2: The 15 Commands。 该系列所有文章将参考其他学习...

    AprilJ 评论0 收藏0
  • Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote AP

    摘要:本系列教程翻译自,系列共有九篇,本文译自原教程最后一篇。本文介绍十个专门用于操作镜像的。用法获取名叫的镜像。操作中带有的情况下,是需要非常小心的。或者不传入,而是用参数指定一个,这种情况下不要求格式。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自原教程最后一篇 Part 9: 10 Docker Remote API Comm...

    inapt 评论0 收藏0
  • Flux7 Docker 系列教程(九):用于镜像操作的 10 个 Docker Remote AP

    摘要:本系列教程翻译自,系列共有九篇,本文译自原教程最后一篇。本文介绍十个专门用于操作镜像的。用法获取名叫的镜像。操作中带有的情况下,是需要非常小心的。或者不传入,而是用参数指定一个,这种情况下不要求格式。 本系列教程翻译自 Flux7 Docker Tutorial Series,系列共有九篇,本文译自原教程最后一篇 Part 9: 10 Docker Remote API Comm...

    SmallBoyO 评论0 收藏0

发表评论

0条评论

yacheng

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<