Docke~r基础学习入门资料.doc

上传人:小** 文档编号:2081170 上传时间:2019-04-18 格式:DOC 页数:52 大小:3.84MB
下载 相关 举报
Docke~r基础学习入门资料.doc_第1页
第1页 / 共52页
Docke~r基础学习入门资料.doc_第2页
第2页 / 共52页
Docke~r基础学习入门资料.doc_第3页
第3页 / 共52页
Docke~r基础学习入门资料.doc_第4页
第4页 / 共52页
Docke~r基础学习入门资料.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

1、-_Docker 入门教程(一)介绍【编者的话】DockerOne 组织翻译了 Flux7 的 Docker 入门教程,本文是系列入门教程的第一篇,介绍了 Docker 的基础概念以及 Docker 的安装。Docker 是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere(译者注:这个就不翻译了,翻译出来味道就没了)”。本文是 Flux7 的 Docker 系列教程的第一部分。请和这份教程一起学习和理解 Docker 有什么优势以及如何更好地使用它。让我们一起来学习 Docker。本文主要涉及 Docker 的

2、基础知识: Docker 的特征、理念以及如何安装使用 Docker。Docker 特征Docker 有不少有趣的功能,通过本教程相信你会更好地理解它们。Docker 的特性主要包括以下几点: 速度飞快以及优雅的隔离框架 物美价廉 CPU/内存的低消耗 快速开/关机 跨云计算基础构架Docker 组件与元素Docker 有三个组件和三个基本元素,读者可以快速浏览下面这个视频来了解这些组建和元素,以及它们的关系。三个组件分别是: Docker Client 是用户界面,它支持用户与 Docker Daemon之间通信。-_ Docker Daemon运行于主机上,处理服务请求。 Docker I

3、ndex是中央 registry,支持拥有公有与私有访问权限的 Docker 容器镜像的备份。三个基本要素分别是: Docker Containers负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。 Docker Images是一个只读模板,用来运行 Docker 容器。 DockerFile是文件指令集,用来说明如何自动创建 Docker 镜像。在讨论 Docker 组件和基本要素如何交互之前,让我们来谈谈 Docker 的支柱。Docker 使用以下操作系统的功能来提高容器技术效率: Namespaces 充当隔离的第一级。确保一个容器中运行一个进程而且不能看到或影响容器外的其

4、它进程。 Control Groups是 LXC 的重要组成部分,具有资源核算与限制的关键功能。-_ UnionFS(文件系统)作为容器的构建块。为了支持 Docker 的轻量级以及速度快的特性,它创建了用户层。如何把它们放在一起运行任何应用程序,都需要有两个基本步骤:1. 构建一个镜像。2. 运行容器。这些步骤都是从 Docker Client的命令开始的。Docker Client使用的是 Docker 二进制文件。在基础层面上,Docker Client会告诉 Docker Daemon需要创建的镜像以及需要在容器内运行的命令。当 Daemon 接收到创建镜像的信号后,会进行如下操作:第

5、 1 步:构建镜像如前所述,Docker Image是一个构建容器的只读模板,它包含了容器启动所需的所有信息,包括运行程序和配置数据。每个镜像都源于一个基本的镜像,然后根据 Dockerfile 中的指令创建模板。对于每个指令,在镜像上创建一个新的层面。一旦镜像创建完成,就可以将它们推送到中央 registry: Docker Index,以供他人使用。然而,Docker Index为镜像提供了两个级别的访问权限:公有访问和私有访问。你可以将镜像存储在私有仓库,Docker 官网有私有仓库的套餐可以供你选择。总之,公有仓库是可搜索和可重复使用的,而私有仓库只能给那些拥有访问权限的成员使用。Do

6、cker Client可用于 Docker Index内的镜像搜索。第 2 步:运行容器-_运行容器源于我们在第一步中创建的镜像。当容器被启动后,一个读写层会被添加到镜像的顶层。当分配到合适的网络和 IP 地址后,需要的应用程序就可以在容器中运行了。如果你还是不太理解,先别急,在接下来的内容中我们将会和你分享很多的实战案例。目前为止,我们已经介绍了 Docker 的基本概念,接下来,让我们一起安装 Docker!安装 Docker:快速指南下面让我们来看看如何在 Ubuntu 12.04 LTS 上安装 Docker(译者注:在 CentOS 6.5 安装可以参考这里):1. 检查 APT 系

7、统的 HTTPS 兼容性。如果 usr/lib/apt/methods/https 文件不存在,请安装 apt-transport-https程序包。2. 在本地添加 Docker Repositor 密钥。 Repository key: hkp:/:80 -recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E93. 添加 Docker Repository 到 APT 源列表。4. 安装 lxc-Docker 程序包。 sudo apt-get update sudo apt-get install lxc-docker5. 验证所安装的内容。

8、 sudo docker run -i -t ubuntu /bin/bashDocker 入门教程(二)命令【编者的话】DockerOne 组织翻译了 Flux7 的 Docker 入门教程,本文是系列入门教程的第二篇,介绍了 Docker 的基本命令以及命令的用法和功能。在 Docker 系列教程的第一篇文章 中,我们了解了 Docker 的基础知识,知道了它是如何工作以及如何安装的。在这篇文章中,我们将学习 15 个 Docker 命令,并通过实践来学习它是如何工作的。首先,让我们通过下面的命令来检查 Docker 的安装是否正确:docker info 如果没有找到这条命令,则表示 D

9、ocker 安装错误。如果安装正确,则会输出类似下面的内容:-_到这一步 Docker 里还没有镜像或是容器。所以,让我们通过使用命令预先构建的镜像来创建来一个:sudo docker pull busyboxBusyBox 是一个最小的 Linux 系统,它提供了该系统的主要功能,不包含一些与 GNU 相关的功能和选项。下一步我们将运行一个“Hello World”的例子,我们暂且叫它 “Hello Docker”吧。docker run busybox /bin/echo Hello Docker-_现在,让我们以后台进程的方式运行 hello docker:sample_job=$(do

10、cker run -d busybox /bin/sh -c “while true; do echo Docker; sleep 1; done“)sample_job命令会隔一秒打印一次 Docker,使用 docker logs可以查看输出的结果。如果没有给这个 job 起名字,那这个 job 就会被分配一个 id,以后使用命令例如 docker logs查看日志就会变得比较麻烦。运行 docker logs命令来查看 job 的当前状态:docker logs $sample_job所有 Docker 命令可以用以下命令查看:docker help名为 sample_job的容器,可以

11、使用以下命令来停止:docker stop $sample_job-_使用以下命令可以重新启动该容器:docker restart $sample_job如果要完全移除容器,需要先将该容器停止,然后才能移除。像这样:docker stop $sample_jobdocker rm $sample_job将容器的状态保存为镜像,使用以下命令:docker commit $sample_job job1注意,镜像名称只能取字符a-z和数字0-9。现在,你就可以使用以下命令查看所有镜像的列表:docker images在 我们之前的 Docker 教程中,我们学习过镜像是存储在 Docker reg

12、istry。在 registry 中的镜像可以使用以下命令查找到:docker search (image-name)查看镜像的历史版本可以执行以下命令:docker history (image_name)-_最后,使用以下命令将镜像推送到 registry:docker push (image_name)非常重要的一点是,你必须要知道存储库不是根存储库,它应该使用此格式(user)/(repo_name)。这都是一些非常基本的 Docker 命令。在我们 Docker 教程系列的第六章 ,我们将讨论如何使用Docker 运行 Python 的 Web 应用程序,以及一些进阶的 Docker

13、 命令。Docker 入门教程(三)Dockerfile【编者的话】DockerOne 组织翻译了 Flux7 的 Docker 入门教程,本文是系列入门教程的第三篇,介绍了 Dockerfile 的语法,DockerOne 目前在代码高亮部分还有些 Bug,我们会尽快修复,目前在代码部分有会些字符会被转义。在 Docker 系列教程的上一篇文章 中,我们介绍了 15 个 Docker 命令,你应该对 Docker 有个大致的了解了。那 15 个命令在手动创建镜像时会用到,它们涵盖了镜像的创建、提交、搜索、pull 和 push的功能。现在问题来了,既然 Docker 能自动创建镜像,那为什么

14、要选择耗时而又乏味的方式来创建镜像呢?Docker 为我们提供了 Dockerfile 来解决自动化的问题。在这篇文章中,我们将讨论什么是Dockerfile,它能够做到的事情以及 Dockerfile 的一些基本语法。易于自动化的命令Dockerfile 包含创建镜像所需要的全部指令。基于在 Dockerfile 中的指令,我们可以使用 Docker build命令来创建镜像。通过减少镜像和容器的创建过程来简化部署。Dockerfile 支持支持的语法命令如下:-_INSTRUCTION argument指令不区分大小写。但是,命名约定为全部大写。所有 Dockerfile 都必须以 FRO

15、M命令开始。 FROM命令会指定镜像基于哪个基础镜像创建,接下来的命令也会基于这个基础镜像(译者注:CentOS 和 Ubuntu 有些命令可是不一样的)。FROM 命令可以多次使用,表示会创建多个镜像。具体语法如下:FROM 例如:FROM ubuntu上面的指定告诉我们,新的镜像将基于 Ubuntu 的镜像来构建。继 FROM命令, DockefFile 还提供了一些其它的命令以实现自动化。在文本文件或 Dockerfile 文件中这些命令的顺序就是它们被执行的顺序。让我们了解一下这些有趣的 Dockerfile 命令吧。1. MAINTAINER:设置该镜像的作者。语法如下:MAINTA

16、INER 2. RUN:在 shell 或者 exec 的环境下执行的命令。RUN 指令会在新创建的镜像上添加新的层面,接下来提交的结果用在 Dockerfile 的下一条指令中。语法如下:RUN command3. ADD:复制文件指令。它有两个参数 和。destination 是容器内的路径。source 可以是 URL 或者是启动配置上下文中的一个文件。语法如下:ADD src destination-_4. CMD:提供了容器默认的执行命令。 Dockerfile 只允许使用一次 CMD 指令。 使用多个 CMD 会抵消之前所有的指令,只有最后一个指令生效。 CMD 有三种形式:CMD

17、 “executable“,“param1“,“param2“CMD “param1“,“param2“CMD command param1 param25. EXPOSE:指定容器在运行时监听的端口。语法如下:EXPOSE ;6. ENTRYPOINT:配置给容器一个可执行的命令,这意味着在每次使用镜像创建容器时一个特定的应用程序可以被设置为默认程序。同时也意味着该镜像每次被调用时仅能运行指定的应用。类似于CMD,Docker 只允许一个 ENTRYPOINT,多个 ENTRYPOINT 会抵消之前所有的指令,只执行最后的 ENTRYPOINT 指令。语法如下:ENTRYPOINT “executable“, “param1“,“param2“ENTRYPOINT command param1 param27. WORKDIR:指定 RUN、CMD 与 ENTRYPOINT命令的工作目录。语法如下:WORKDIR /path/to/workdir8. ENV:设置环境变量。它们使用键值对,增加运行程序的灵活性。语法如下:ENV 9. USER:镜像正在运行时设置一个 UID。语法如下:USER

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。