docker入门(一)

docker是docker.lnc公司开源的一个基于LXC技术之上构建的container容器引(openstack是基于KVM),源代码托管在GitHub上,基于Go语言并遵从Apache2.0协议开源。

docker是通过内核(linux内核)虚拟化技术(namespaces及cgroups等)(KVM是基于硬件虚拟化技术来实现的)来提供容器的资源隔离与安全保障等。由于Docker通过操作系统层的虚拟化实现隔离,所以docker容器在运行时,不需要类似虚拟机(VM)额外的系统开销,提高资源利用率。

docker的组成:docker是一个C/S结构的(C/S就是客户端/服务器,B/S就是浏览器/服务器模式)

Docker Client

Dockerserver

docker的组件:

1,镜像(image)

2,容器(container)

3,仓库(repository)

Docker镜像

Docker镜像( Image) 就是一个只读的模板。

例如:一个镜像可以包含一个完整的ubuntu 操作系统环境,里面仅安装了 Apache

或用户需要的其它应用程序。

镜像可以用来创建Docker 容器。

Docker提供了一个很简单的机制来创建镜像或者更新现有的镜像,用户甚至可以

直接从其他人那里下载一个已经做好的镜像来直接使用。

Docker 容器

Docker利用容器( Container) 来运行应用。

容器是从镜像创建的运行实例。它可以被启动、开始、停止、删除。每个容器都是

相互隔离的、保证安全的平台。

可以把容器看做是一个简易版的Linux 环境( 包括root用户权限、进程空间、用户

空间和网络空间等)和运行在其中的应用程序。

*注:镜像是只读的,容器在启动的时候创建一层可写层作为最上层。

Docker 仓库

仓库(Repository) 是集中存放镜像文件的场所。有时候会把仓库和仓库注册服务

器(Registry) 混为一谈,并不严格区分。实际上,仓库注册服务器上往往存放着

多个仓库,每个仓库中又包含了多个镜像,每个镜像有不同的标签(tag) 。

仓库分为公开仓库(Public) 和私有仓库( Private) 两种形式。

最大的公开仓库是Docker Hub,存放了数量庞大的镜像供用户下载。

国内的公开仓库包括时速云 、网易云 等,可以提供大陆用户更稳定快速的访问。

当然,用户也可以在本地网络内创建一个私有仓库(参考本文“私有仓库”部分) 。

当用户创建了自己的镜像之后就可以使用push 命令将它上传到公有或者私有仓

库,这样下次在另外一台机器上使用这个镜像时候,只需要从仓库上pull 下来

就可以了。

*注:Docker仓库的概念跟 Git 类似,注册服务器可以理解为 GitHub 这样的托管服

容器与虚拟化的区别:containersvs VMS

Docker和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。

VM:首先需要有一个server(物理机)上面需要装一个操作系统host OS,再上去需要起一个虚拟机管理器(比如是KVM,XEN等),然后在上面跑一个虚拟机guest OS,在虚拟机上就可以跑各种应用了。

containers:需要有一个server(物理机)上面需要装一个操作系统host OS,然后他是基于docker的一个引擎来创建各个docker,是隔离起来的

docker与openstack的对比:

docker能干什么?

1,简化配置。(环境不一致配置就不一致:测试环境中我们装了python的依赖,生产环境没有装就会出现上线失败)(openstack,saltstack也能做)

2,代码流水线管理(开发写一个代码需要开发环境,测试者测试,然后上线)保证所有环境一致(saltstack也能做,保证所有环境都是saltstack)

3,开发效率(新员工入职的时候新机器需要配置很多环境,不同业务线的给打包不同的镜像)(openstack起个虚拟机更快,每人一台虚拟机)docker起在本地可能一断电就没了

4,应用隔离(虚拟机是完全隔离,docker只是一个隔离(openstack起KVM需要占用资源,docker不用))

5,服务器整合(一个服务器可以跑多个docker来提高服务器的利用率)

6,调试能力(进入docker调试比较难,虚拟机就方面很多)

7,多租户(opensatck本来设置就是多租户,每个project就是一个租户)

8,快速部署(体积小,快)(微信春晚抢红包,一秒钟启动上千个docker)

用docker的理由:

1,技术储备。2,符合当前业务需求,3,速度快

docker的坏处:docker用的是S/C架构,一当服务器挂了,所有的docker都会停止运行。

centos7下载docker :yum installdocker -y

启动:systemctlstart docker

时间: 2024-10-05 19:43:11

docker入门(一)的相关文章

docker入门概览

docker入门概览 标签 : docker docker入门概览 写在前面 概述 什么是Docker 什么是Docker Engine Docker的用处 安装 Ubuntu Mac OS X 演示 架构和原理 结语 参考资料 本文对docker进行大致介绍,包括概述,安装,简单使用,架构,基本原理等方面 写在前面 本文是自己学习docker的一个记录和整理,啃英文文档挺吃力的,懒得翻译,所以写这篇类似"索引"的文章,希望能帮助和我一样的新手快速入门 本文主要参考官方文档(Docke

Docker入门教程(一)介绍

http://dockone.io/article/101 Docker入门教程(一)介绍 [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第一篇,介绍了Docker的基础概念以及Docker的安装. Docker是一个新的容器化的技术,它轻巧,且易移植,号称“build once, configure once and run anywhere(译者注:这个就不翻译了,翻译出来味道就没了)”.本文是Flux7的Docker系列教程的第一部分.请和这

Docker入门教程(二)命令

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

Docker入门教程(四)Docker Registry

Docker入门教程(四)Docker Registry [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第四篇,介绍了Docker Registry,它是Docker中的重要组件.本文通过情景演绎的方式对其进行了介绍,图文并茂,强烈推荐读者阅读. 在Docker系列教程的上一篇文章中,我们讨论了Dockerfile的重要性并提供了一系列Dockerfile的命令,使镜像的自动构建更加容易.在这篇文章中,我们将介绍Docker的一个重要组件:Dock

Docker入门教程(七)Docker API

Docker入门教程(七)Docker API [编者的话]DockerOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第七篇,重点介绍了Docker Registry API和Docker Hub API. 纵观我们的Docker系列教程,我们已经讨论了很多重要的Docker组件与命令.在本文中,我们将继续深入学习Docker:剖析Docker APIs. Docker提供了很多的API以便用户使用.这些API包含四个方面: Docker Registry API Doc

Docker入门教程(五)Docker安全

Docker入门教程(五)Docker安全 [编者的话]DockOne组织翻译了Flux7的Docker入门教程,本文是系列入门教程的第五篇,介绍了Docker的安全问题,依然是老话重谈,入门者可以通过阅读本文快速了解. 我们必须高度重视开源软件的安全问题,当开发者在使用Docker时,从本地构建应用程序到生产环境部署是没有任何差异的(译者注:作者的言外之意是更应该重视Docker的安全问题).当Docker被越来越多的平台使用的时候,我们需要严格保证Docker作为一个项目或者平台的安全性.

【实战】Docker 入门实战一

Docker是什么 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从Apache2.0协议开源.Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低 从这个解释我们不知道大家有没有想到一个优点类似的东西,没错就是 Vagrant :  vagrant打造跨平台可移动的开发环境   ,那么

.NET Core + docker入门

下载安装docker docker客户端,今天vpn小水管实在是受不了,于是找了国内的下载地址 配置docker加速器 参考博文Docker for windows10 配置阿里云镜像 docker入门 docker入门文档参考 .NET Core + docker 快速上手 详细文档

《第一本Docker》笔记(三)之Docker入门

三.Docker入门(以下运行环境是Cetos6.364bit系统上进行) 1. 创建容器 #docker run -I -t ubuntu /bin/bash -i 标志保证容器中STDIN是开启的,尽管我们并没有附着到容器中,-t 标志告诉Docker为要创建的容器分配一个伪tty终端. 附录:在执行这条指令的时候遇到以下问题: FATA[0000] Gethttp:///var/run/docker.sock/v1.17/images/search?term=ubuntu: dial un

Docker 入门实践

欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:张戈 导语 本文从新手视角记录了一个实际的Dokcer应用场景从创建.上传直到部署的详细过程,并简单的介绍了腾讯云容器服务的使用方法.通过Docker快速拉起一个定制服务,极大的简化了部署,加快了业务部署节奏,并降低了运维成本. ------ 人生苦短,快用Docker. 一.实践背景 初次接触Docker,按照我的学习习惯,先设计了这样一个场景case:假设有一个小型网站,想使用Nginx反向代理方案,能够在国内外快速搭建多个