热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

docker入门教程(一)介绍

今天小普要和各位分享的是最近一直很火的容器小鲜肉,那就是docker啦。本文主要会介绍docker的一些基础的概念以及docker的最简单的几个安装方式。
Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere,按照小普的理解是就是一次编译,到处运行,这个有点类似java虚拟机的意思。因此本篇文章主要涉及的docker基础知识:docker特征,docker组件,以及如何安装使用docker。

Docker 特征

Docker有不少有趣的功能,主要包括以下几点:
速度飞快以及优雅的隔离框架
物美价廉
CPU/内存的低消耗
快速开/关机
跨云计算基础构架

Docker 组件与元素

Docker有三个组件和三个基本元素,三个组件分别是:
Docker Client 是用户界面,它支持用户与Docker Daemon之间通信。
Docker Daemon,运行于主机上,处理服务请求。
Docker Index,是中间***构,支持拥有公有与私有访问权限的Docker容器镜像的备份。

三个基本要素分别是:
Docker Containers,负责应用程序的运行,包括操作系统、用户添加的文件以及元数据。
Docker Images,是一个只读模板,用来运行Docker容器。
DockerFile,是文件指令集,用来说明如何自动创建Docker镜像。
有一点是需要大家知道的,Docker其实是使用以下操作系统的功能来提高容器技术效率:
Namespaces 充当隔离的第一级。确保一个容器中运行一个进程而且不能看到或影响容器外的其它进程。
CGroups是LXC的重要组成部分,具有资源核算与限制的关键功能。
UnionFS(文件系统)作为容器的构建块。为了支持Docker的轻量级以及速度快的特性,它创建了用户层。

如何把它们放在一起

运行任何应用程序,都需要有两个基本步骤:构建一个镜像,然后运行容器。
这些步骤都是从Docker Client的命令开始的。Docker Client使用的是Docker二进制文件。在基础层面上,Docker Client会告诉Docker Daemon需要创建的镜像以及需要在容器内运行的命令。当Daemon接收到创建镜像的信号后,会进行如下操作:
第1步:构建镜像
如前所述,Docker Image是一个构建容器的只读模板,它包含了容器启动所需的所有信息,包括运行程序和配置数据。
每个镜像都源于一个基本的镜像,然后根据Dockerfile中的指令创建模板。对于每个指令,在镜像上创建一个新的层面。
一旦镜像创建完成,就可以将它们推送到中间registry:Docker Index,以供他人使用。然而,Docker Index为镜像提供了两个级别的访问权限:公有访问和私有访问。你可以将镜像存储在私有仓库,Docker官网有私有仓库的套餐可以供你选择。总之,公有仓库是可搜索和可重复使用的,而私有仓库只能给那些拥有访问权限的成员使用。Docker Client可用于Docker Index内的镜像搜索。
第2步:运行容器
运行容器源于我们在第一步中创建的镜像。当容器被启动后,一个读写层会被添加到镜像的顶层。当分配到合适的网络和IP地址后,需要的应用程序就可以在容器中运行了。
目前为止,我们已经介绍了Docker的基本概念,接下来,让我们一起安装Docker!

安装Docker:快速指南

下面让我们来看看如何在Ubuntu 12.04 LTS上安装Docker,我使用的是咱们睿江云的主机,是完全可以实现的哦。
检查APT系统的HTTPS兼容性。如果usr/lib/apt/methods/https文件不存在,请安装apt-transport-https程序包。
在本地添加Docker Repositor**。 Repository key: hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
添加Docker Repository到APT源列表。
安装lxc-Docker程序包。 sudo apt-get update sudo apt-get install lxc-docker
验证所安装的内容。 sudo docker run -i -t ubuntu /bin/bash

好了,到这里就介绍完关于docker是什么,以及如何最快安装docker的方法了哦,下期的干货,小普将和大家分享下,关于几个docker命令的简单使用以及个人学习心得,敬请期待。
docker入门教程(一)介绍文章来自公众号:睿江云计算

睿江云官网链接:https://www.eflycloud.com/home?from=RJ0024


推荐阅读
  • Docker安全策略与管理
    本文探讨了Docker的安全挑战、核心安全特性及其管理策略,旨在帮助读者深入理解Docker安全机制,并提供实用的安全管理建议。 ... [详细]
  • 本文介绍了如何将Spring属性占位符与Jersey的@Path和@ApplicationPath注解结合使用,以便在资源路径中动态解析属性值。 ... [详细]
  • 本文基于Java官方文档进行了适当修改,旨在介绍如何实现一个能够同时处理多个客户端请求的服务端程序。在前文中,我们探讨了单客户端访问的服务端实现,而本篇将深入讲解多客户端环境下的服务端设计与实现。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • Asynchronous JavaScript and XML (AJAX) 的流行很大程度上得益于 Google 在其产品如 Google Suggest 和 Google Maps 中的应用。本文将深入探讨 AJAX 在 .NET 环境下的工作原理及其实现方法。 ... [详细]
  • 探索Java 11中的ZGC垃圾收集器
    Java 11引入了一种新的垃圾收集器——ZGC,由Oracle公司研发,旨在支持TB级别的内存容量,并保证极低的暂停时间。本文将探讨ZGC的开发背景、技术特点及其潜在的应用前景。 ... [详细]
  • 本文探讨了Node.js后端开发的基础知识,包括模块源码的使用方法、前后端源码的区别以及如何在命令行环境中编译Node.js源代码。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • Java实现:从键盘输入系数求解一元二次方程
    本教程详细介绍了如何使用Java编程语言,通过键盘输入系数a、b、c来求解一元二次方程ax² + bx + c = 0的根。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 数据类型--char一、char1.1char占用2个字节char取值范围:【0~65535】char采用unicode编码方式char类型的字面量用单引号括起来char可以存储一 ... [详细]
  • 2017年软件开发领域的七大变革
    随着技术的不断进步,2017年对软件开发人员而言将充满挑战与机遇。本文探讨了开发人员需要适应的七个关键变化,包括人工智能、聊天机器人、容器技术、应用程序版本控制、云测试环境、大众开发者崛起以及系统管理的云迁移。 ... [详细]
  • Flutter 核心技术与混合开发模式深入解析
    本文深入探讨了 Flutter 的核心技术,特别是其混合开发模式,包括统一管理模式和三端分离模式,以及混合栈原理。通过对比不同模式的优缺点,帮助开发者选择最适合项目的混合开发策略。 ... [详细]
  • RTThread线程间通信
    线程中通信在裸机编程中,经常会使用全局变量进行功能间的通信,如某些功能可能由于一些操作而改变全局变量的值,另一个功能对此全局变量进行读取& ... [详细]
  • 本文总结了近年来在实际项目中使用消息中间件的经验和常见问题,旨在为Java初学者和中级开发者提供实用的参考。文章详细介绍了消息中间件在分布式系统中的作用,以及如何通过消息中间件实现高可用性和可扩展性。 ... [详细]
author-avatar
季柔原
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有