docker容器安装oracle数据库

docker容器安装oracle数据库,第1张

目录

一、镜像加速

Docker 默认是从官方镜像地址 Docker Hub 下下载镜像,由于服务器在国外的缘故,导致经常下载速度非常慢。为了提升镜像的下载速度,我们可以手动配置国内镜像加速,让下载速度飚起来。

国内的镜像加速选项较多,如:阿里云,DaoCloud 等。

本文主要说说如何配置阿里云的镜像加速。

21 登录阿里云获取加速信息

>

我们单位最近在推docker,已经在开发测试环境使用(稍显落后),下面我就谈谈自己的Docker的理解,以及Docker和虚拟机的区别。

虚拟机

先说说什么是虚拟机:在一台物理机器上,利用虚拟化技术,虚拟出来多个 *** 作系统,每个 *** 作系统之间是隔离的。

说起来有些绕,那么我们看看虚拟机的架构图,就容易理解了。例如我们要在一台物理机器运行三个Java项目,彼此之间隔离。

从下往上看, 解释起来其实很简单:

最下面的一层就是物理机,可以是服务器,设置是一台个人电脑;

Docker

再说说什么是Docker,找了一句官方的解释:Docker是开源的应用容器引擎。是不是又一头雾水?我们还是先看看Docker的架构图。

依然从下往上看:

Docker和虚拟机的区别

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

谢谢了!docker容器域虚拟机有什么区别呢?

docker容器: Docker 容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。

虚拟机: 虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有 *** 作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有 *** 作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类 *** 作系统。虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有 *** 作系统相同的环境,而虚拟机则可以模拟出其他种类的 *** 作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。 对比虚拟机与DockerDocker守护进程可以直接与主 *** 作系统进行通信,为各个Docker容器分配资源;它还可以将容器与主 *** 作系统隔离,并将各个容器互相隔离。虚拟机启动需要数分钟,而Docker容器可以在数毫秒内启动。由于没有臃肿的从 *** 作系统,Docker可以节省大量的磁盘空间以及其他系统资源。说了这么多Docker的优势,大家也没有必要完全否定虚拟机技术,因为两者有不同的使用场景。虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。

docker解决的主要问题

有过后台开发经验的同学,一定遇到过下面这些问题:

那么,有了docker,这些问题都将不复存在。

什么是docker

Docker是一个虚拟环境容器,可以将你的可执行文件、配置文件及一切其他你需要的文件一并打包到这个容器中,并发布和应用到任意平台。比如,你在本地用Python开发了一个网站后台,开发测试完成后,就可以将Python3及其依赖包、Flask及其各种插件、Mysql、Nginx等打包到一个容器中,然后部署到任意你想部署到的环境。

如果不好理解,我们再拿集装箱打个比方。

集装箱解决了什么问题呢?在一艘大船上,可以把货物规整的摆放起来。并且各种各样的货物被集装箱标准化了,集装箱和集装箱之间不会互相影响。那么我就不需要专门运送水果的船和专门运送化学品的船了。只要这些货物在集装箱里封装的好好的,那我就可以用一艘大船把他们都运走。

docker也是类似的理念。我们可以在一台机器上跑多个互相毫无关联的docker容器,每一个容器就相当于一个集装箱。

docker里的几个基本概念 与传统虚拟化的区别

这里我们顺便讲一下传统虚拟化。

我们看到,传统虚拟化是站在硬件物理资源的基础上,虚拟出多个OS,然后在OS的基础上构建相对独立的程序运行环境,而Dokcer则是在OS的基础上进行虚拟,显然Dokcer轻量得多,因此其资源占用、性能消耗相比传统虚拟化都有很大优势。

在IT行业从业多年,也算从看着时代从物理服务器走向虚拟化云计算时代,又准备进入Docker时代,作为下一代虚拟化技术,Docker正改变着整个行业开发、测试、部署应用的方式,至于虚拟化技术和docker技术到底有什么不同,下面来分析一下。

01 什么是虚拟化?

顾名思义,虚拟化技术是将物理资源以某种技术虚拟成资源池的形式,主要有一虚多和多虚一两种形式,比如个人电脑安装Vmware软件,可以在这个软件上安装其他Win系统、MacOS、Linux系统等,实现一台电脑/笔记本承载多个系统的优点,目前苹果笔记本用户双系统解决方案也以虚拟机为主,普通Windows用户可能需求量不大,而技术人员基本是必备软件了。

从企业层面来看,多虚一为主要形式,也就是将大量物理服务器集群虚拟化,形成一个资源池,在这个资源上创建各种不同的虚拟机,实现灵活部署。

02 什么是Docker

其实docker和虚拟技术很像,但又有一些不同点,一方面是两个技术的层级上,虚拟机一般是底层硬件Hardware支撑,上层是虚拟管理系统Hypervisor层,在上层开启不同的VM业务,如果需要将这些业务进行隔离,需要每个VM启动客户机 *** 作系统,非常消耗资源。

Docker完全不同,底层有硬件和Host OS系统支撑,比如Windows/MacOS/Linux,中间抛去了臃肿的系统,而是以Docker守护进程代替,上层建立不同的容器,不同的应用镜像打包在不同的容器中,他们互相隔离。

03 虚拟化与docker的区别

docker设计小巧,部署迁移快速,运行高效,应用之间相互独立,管理人员可以看到所有容器的内容,虚拟化技术比较臃肿,不论什么应用都需要先创建新的系统,并且并非按照应用隔离,而是按照系统隔离,管理员无法看到系统内部信息。

举个例子,Docker就是手机中的各种APP,只需要一个系统就可以下载自己所需的应用,但是虚拟化技术相当于你的苹果手机安装一个庞大软件,这个软件上安装安卓系统、魅族系统等,每个系统上还要安装各类应用,比较麻烦。

但两者没有绝对的好坏,主要还是看应用场景,根据不同的需求选择不同的解决方案即可。

Docker与虚拟机介绍

虚拟机: 传统的虚拟机需要模拟整台机器包括硬件,每台虚拟机都需要有自己的 *** 作系统,虚拟机一旦被开启,预分配给他的资源将全部被占用,每一个虚拟机包括应用,必要的二进制和库以及一个完整的用户 *** 作系统。

容器(Docker): 容器与的宿主机共享硬件资源及 *** 作系统可以实现资源的动态分配。容器包含应用和其所有的依赖包,但是与其他容器共享内核。容器在宿主机 *** 作系统中,在用户空间以分离的进程运行。

虚拟机和容器都是在硬件和 *** 作系统以上的,虚拟机有Hypervisor层(“翻译”客户系统和宿主系统之间的指令),Hypervisor是整个虚拟机的核心所在。他为虚拟机提供了虚拟的运行平台,管理虚拟机的 *** 作系统运行。每个虚拟机都有自己的系统和系统库以及应用。

容器没有Hypervisor层,它是内核级的虚拟化,并且每个容器与宿主机共享硬件资源及 *** 作系统,因此Docker容器不存在Hypervisor层带来性能的损耗,因此可以实现更高的性能和效率。但是虚拟机技术也有其优势,能为应用提供一个更加隔离的环境,不会因为应用程序的漏洞给宿主机造成任何威胁。

虚拟机是对硬件资源的虚拟,容器技术则是对进程的虚拟,从而可提供更轻量级的虚拟化,实现进程和资源的隔离。从架构来看,Docker比虚拟化少了两层,取消了hypervisor层和GuestOS层,使用 Docker Engine 进行调度和隔离,所有应用共用主机 *** 作系统,因此在体量上,Docker较虚拟机更轻量级,在性能上优于虚拟化,接近物理机原生性能。

Docker的优势

持续部署与测试

更高效的利用系统资源

交付物标准化

应用隔离

高性能

最近刚好看了一部分docker的东西

先上图,vm与docker框架,直观上来讲 vm多了一层guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源 ,所以资源利用率相对docker低也是比较容易理解的

其次,openstack能够以10台/min的速度创建虚拟机,在docker面前就弱爆了,因为docker是利用宿主机的系统内核,所以可以做到在几秒钟之内创建大量容器,它们的 启动速度是在数量级上的差距

最后找了一个IBM测试案例,关于计算能力的,对于kvm为什么会有这么大的性能损失,一方面是因为虚拟机增加了一层虚拟硬件层,运行在虚拟机上的应用程序在进行数值计算时是运行在Hypervisor虚拟的CPU上的;另外一方面是由于计算程序本身的特性导致的差异。虚拟机虚拟的cpu架构不同于实际cpu架构,数值计算程序一般针对特定的cpu架构有一定的优化措施,虚拟化使这些措施作废,甚至起到反效果。比如对于本次实验的平台,实际的CPU架构是2块物理CPU,每块CPU拥有16个核,共32个核,采用的是NUMA架构;而虚拟机则将CPU虚拟化成一块拥有32个核的CPU。这就导致了计算程序在进行计算时无法根据实际的CPU架构进行优化,大大减低了计算效率。

从计算机软件层级来看,docker和虚拟机的区别在于虚拟的软件层级不一样。虚拟机基于同一个硬件,模拟出不同的 *** 作系统;而docker基于同一个 *** 作系统,模拟出不同的运行时环境。我们依次来看:

1 先看看计算机的软件层次,从下到上依次为: *** 作系统内核、文件系统(运行时环境)、上层APP。

2 虚拟机运行在同一个硬件上,可以虚拟出不同的 *** 作系统。比如vmware可以在一台pc上既模拟出一个windows系统,同时也可以模拟出一台linux系统。 借助虚拟机,两个不同的 *** 作系统可以同时运行在同一个硬件之上。

3 而docker则运行在同一个 *** 作系统内核上,虚拟出不同的文件系统或者也可以叫做运行时环境。不同的运行时环境,其对应的文件系统也是不同的。比如java的运行时环境就要求文件系统里存在jdk,而golang的运行时环境则需要有go相关的底层库。在docker上既可以虚拟出一个java的运行时环境,也可以虚拟出go的运行时环境。甚至, 基于docker,你既可以虚拟出一个java-16的运行时候环境,也可以虚拟出一个java-18的运行时环境,而这两个运行时环境可以同时运行在同一个 *** 作系统之上

很高兴为您解答。

Docker悄无声息的来到我们身边,正在改变我们的开发、测试、部署应用的方式,那么,到底Docker和虚拟机VM有什么区别,我们通过一个图,再配上简明扼要的文字就很容易理解两者之间的区别。

首先要明确:Docker是一个开源的应用容器引擎,而VM是一个完整的 *** 作系统。

1、使用VM运行多个相互隔离的应用

解释:

可以看到,APP #1、APP #2、APP #3如果要独立运行,相互隔离,则需要安装三个 *** 作系统。如果一个虚拟 *** 作系统按1G算,总共需要占3G的存储空间,更槽糕的是,光运行这三个 *** 作系统就要耗费很大的内存和CPU。

2、使用Docker运行多个相互隔离的应用

DOCKER DAEMON:Docker守护进程,负责管理Docker容器。

Docker运行在主 *** 作系统之上,APP #1、APP #2、APP #3在Docker中是完全隔离的、相经独立的容器。跟VM相比,省去了庞大的 *** 作系统,耗费硬件资源较少。

除了以上架构上的差异之外,VM和Docker在启动时间上也有着很大的差距,VM启动大概需要2分钟的时间,而Docker启动则只需2秒。

随着互联网的发展,Docker的应用会越来越广,Build once,run anywhere,一次构建,到处运行。

docker是虚拟化软件运行环境。

虚拟机是虚拟化硬件。

层次不同。

虚拟机更消耗资源。但带来的是一个完整的可以不同于宿主机的 *** 作系统。因为和宿主机 *** 作系统不共享任何东西(包括硬件,内核,动态库,环境变量等),它的隔离性更好。

docker更轻量级,共享使用宿主机的硬件和内核,资源占用更少。它在宿主机内核基础上虚拟化了一个不同于宿主机的软件运行环境,比如动态库,环境变量等。可以说,docker和宿主机之间除了内核共享,其它都可以不同。

Docker容器启动、停止速度快rr Docker容器对资源需求较少rr Docker *** 作简单rr Dockerfile自动构建和部署方便

生产环境,测试环境中,Docker 可以做什么

Docker 是容器管理工具

Docker

是一个轻量级、便携式、与外界隔离的容器,也是一个可以在容器中很方便地构建、传输、运行应用的引擎。和传统的虚拟化技术不同的是,Docker

引擎并不虚拟出一台虚拟机,而是直接使用宿主机的内核和硬件,直接在宿主机上运行容器内应用。也正是得益于此,Docker

容器内运行的应用和宿主机上运行的应用性能差距几乎可以忽略不计。

但是 Docker 本身并不是一个容器系统,而是一个基于原有的容器化工具 LXC 用来创建虚拟环境的工具。类似 LXC 的工具已经在生产环境中使用多年,Docker 则基于此提供了更加友好的镜像管理工具和部署工具。

Docker 不是虚拟化引擎

Docker 第一次发布的时候,很多人都拿 Docker 和虚拟机 VMware、KVM 和 VirtualBox

比较。尽管从功能上看,Docker 和虚拟化技术致力于解决的问题都差不多,但是 Docker

却是采取了另一种非常不同的方式。虚拟机是虚拟出一套硬件,虚拟机的系统进行的磁盘 *** 作,其实都是在对虚拟出来的磁盘进行 *** 作。当运行 CPU

密集型的任务时,是虚拟机把虚拟系统里的 CPU

指令“翻译”成宿主机的CPU指令并进行执行。两个磁盘层,两个处理器调度器,两个 *** 作系统消耗的内存,所有虚拟出的这些都会带来相当多的性能损失,一台虚拟机所消耗的硬件资源和对应的硬件相当,一台主机上跑太多的虚拟机之后就会过载。而

Docker 就没有这种顾虑。Docker 运行应用采取的是“容器”的解决方案:使用 namespace 和 CGroup

进行资源限制,和宿主机共享内核,不虚拟磁盘,所有的容器磁盘 *** 作其实都是对 /var/lib/docker/

的 *** 作。简言之,Docker 其实只是在宿主机中运行了一个受到限制的应用程序。

从上面不难看出,容器和虚拟机的概念并不相同,容器也并不能取代虚拟机。在容器力所不能及的地方,虚拟机可以大显身手。例如:宿主机是

Linux,只能通过虚拟机运行 Windows,Docker 便无法做到。再例如,宿主机是 Windows,Windows 并不能直接运行

Docker,Windows上的 Docker 其实是运行在 VirtualBox 虚拟机里的。

Docker 使用层级的文件系统

前面提到过,Docker 和现有容器技术 LXC 等相比,优势之一就是 Docker 提供了镜像管理。对于 Docker

而言,镜像是一个静态的、只读的容器文件系统的快照。然而不仅如此,Docker

中所有的磁盘 *** 作都是对特定的Copy-On-Write文件系统进行的。下面通过一个例子解释一下这个问题。

例如我们要建立一个容器运行 JAVA Web 应用,那么我们应该使用一个已经安装了 JAVA 的镜像。在

Dockerfile(一个用于生成镜像的指令文件)中,应该指明“基于 JAVA 镜像”,这样 Docker 就会去 Docker Hub

Registry 上下载提前构建好的 JAVA 镜像。然后再 Dockerfile 中指明下载并解压 Apache Tomcat 软件到 /opt/tomcat

文件夹中。这条命令并不会对原有的 JAVA 镜像产生任何影响,而仅仅是在原有镜像上面添加了一个改动层。当一个容器启动时,容器内的所有改动层都会启动,容器会从第一层中运行 /usr/bin/java

命令,并且调用另外一层中的 /opt/tomcat/bin

命令。实际上,Dockerfile 中每一条指令都会产生一个新的改动层,即便只有一个文件被改动。如果用过 Git

就能更清楚地认识这一点,每条指令就像是每次 mit,都会留下记录。但是对于 Docker

来说,这种文件系统提供了更大的灵活性,也可以更方便地管理应用程序。

我们Spantree的团队有一个自己维护的含有 Tomcat 的镜像。发布新版本也非常简单:使用 Dockerfile

将新版本拷贝进镜像从而创建一个新镜像,然后给新镜像贴上版本的标签。不同版本的镜像的不同之处仅仅是一个 90 MB 大小的 WAR

文件,他们所基于的主镜像都是相同的。如果使用虚拟机去维护这些不同的版本的话,还要消耗掉很多不同的磁盘去存储相同的系统,而使用 Docker

就只需要很小的磁盘空间。即便我们同时运行这个镜像的很多实例,我们也只需要一个基础的 JAVA / TOMCAT 镜像。

Docker 可以节约时间

很多年前我在为一个连锁餐厅开发软件时,仅仅是为了描述如何搭建环境都需要写一个 12 页的 Word 文档。例如本地 Oracle

数据库,特定版本的

JAVA,以及其他七七八八的系统工具和共享库、软件包。整个搭建过程浪费掉了我们团队每个人几乎一天的时间,如果用金钱衡量的话,花掉了我们上万美金的时间成本。虽然客户已经对这种事情习以为常,甚至认为这是引入新成员、让成员适应环境、让自己的员工适应我们的软件所必须的成本,但是相比较起来,我们宁愿把更多的时间花在为客户构建可以增进业务的功能上面。

如果当时有 Docker,那么构建环境就会像使用自动化搭建工具 Puppet / Chef / Salt / Ansible

一样简单,我们也可以把整个搭建时间周期从一天缩短为几分钟。但是和这些工具不同的地方在于,Docker

可以不仅仅可以搭建整个环境,还可以将整个环境保存成磁盘文件,然后复制到别的地方。需要从源码编译 Nodejs 吗?Docker

做得到。Docker 不仅仅可以构建一个 Nodejs 环境,还可以将整个环境做成镜像,然后保存到任何地方。当然,由于 Docker

是一个容器,所以不用担心容器内执行的东西会对宿主机产生任何的影响。

现在新加入我们团队的人只需要运行 docker-pose up

命令,便可以喝杯咖啡,然后开始工作了。

Docker 可以节省开销

当然,时间就是金钱。除了时间外,Docker 还可以节省在基础设施硬件上的开销。高德纳和麦肯锡的研究表明,数据中心的利用率在 6% -

12% 左右。不仅如此,如果采用虚拟机的话,你还需要被动地监控和设置每台虚拟机的 CPU 硬盘和内存的使用率,因为采用了静态分区(static

partitioning)所以资源并不能完全被利用。。而容器可以解决这个问题:容器可以在实例之间进行内存和磁盘共享。你可以在同一台主机上运行多个服务、可以不用去限制容器所消耗的资源、可以去限制资源、可以在不需要的时候停止容器,也不用担心启动已经停止的程序时会带来过多的资源消耗。凌晨三点的时候只有很少的人会去访问你的网站,同时你需要比较多的资源执行夜间的批处理任务,那么可以很简单的便实现资源的交换。

虚拟机所消耗的内存、硬盘、CPU 都是固定的,一般动态调整都需要重启虚拟机。而用 Docker 的话,你可以进行资源限制,得益于

CGroup,可以很方便动态调整资源限制,让然也可以不进行资源限制。Docker

容器内的应用对宿主机而言只是两个隔离的应用程序,并不是两个虚拟机,所以宿主机也可以自行去分配资源。

Docker 有一个健壮的镜像托管系统

前面提到过,这个托管系统就叫做 Docker Hub Registry。截止到 2015年4月29日,互联网上大约有 14000

个公共的 Docker,而大部分都被托管在 Docker Hub 上面。和 Github 已经很大程度上成为开源项目的代表一样,Docker

官方的 Docker Hub 则已经是公共 Docker 镜像的代表。这些镜像可以作为你应用和数据服务的基础。

也正是得益于此,你可以随意尝试最新的技术:说不定有些人就把图形化数据库的实例打包成了 Docker 镜像托管在上面。再例如

Gitlab,手工搭建 Gitlab 非常困难,译者不建议普通用户去手工搭建,而如果使用 Docker

Gitlab,这个镜像则会五秒内便搭建完成。再例如特定 Ruby 版本的 Rails 应用,再例如 Linux 上的 NET

应用,这些都可以使用简单的一条 Docker 命令搭建完成。

Docker 官方镜像都有 official 标签,安全性可以保证。但是第三方镜像的安全性无法保证,所以请谨慎下载第三方镜像。生产环境下可以只使用第三方提供的 Dockerfile 构建镜像。

Docker Github 介绍:5 秒内搞定一个 Gitlab

关于 Linux 上的 NET 应用和 Rails 应用,将会在以后的文章中做详细介绍。

Docker 可以避免产生 Bug

Spantree 一直是“固定基础设置”(immutable

infrastructure)的狂热爱好者。换句话说,除非有心脏出血这种漏洞,我们尽量不对系统做升级,也尽量不去改变系统的设置。当添加新服务器的时候,我们也会从头构建服务器的系统,然后直接将镜像导入,将服务器放入负载均衡的集群里,然后对要退休的服务器进行健康检查,检查完毕后移除集群。得益于

Docker 镜像可以很轻松的导入导出,我们可以最大程度地减少因为环境和版本问题导致的不兼容,即便有不兼容了也可以很轻松地回滚。当然,有了

Docker,我们在生产、测试和开发中的运行环境得到统一。以前在协同开发时,会因为每个人开发的电脑配置不同而导致“在我的电脑上是能运行的,你的怎么不行”的情况,而如今

Docker 已经帮我们解决了这个问题。

Docker 目前只能运行在 Linux 上

前面也提到过,Docker 使用的是经过长时间生产环境检验的技术,虽然这些技术已经都出现很长时间了,但是大部分技术都还是 Linux

独有的,例如 LXC 和 Cgroup。也就是说,截止到现在,Docker 容器内只能在 Linux 上运行 Linux

上的服务和应用。Microsoft 正在和 Docker 紧密合作,并且已经宣布了下一个版本的 Windows Server 将会支持

Docker 容器,并且命名为 Windows Docker,估计采用的技术应该是Hyper-V

Container,我们有望在未来的几年内看到这个版本。

Docker是一个为开发人员和系统管理员开发、迁移和运行应用程序的平台。应用程序通过Docker打包成DockerImage后,可以实现统一的方式来下载、启动、扩展、删除和迁移,这样方便了应用程序的部署和运维。本文将介绍如何在不同 *** 作系统平台上部署Docker环境的方法。信息Ubuntu:Docker刚推出的时候只支持Ubuntu,后来才一点点开始对其他平台的支持。所以在Ubuntu平台上部署Docker平台还是挺简单的。官方目前支持的版本有UbuntuTrusty1404(LTS)、UbuntuPrecise1204(LTS)、UbuntuSaucy1310。Docker要求64位的系统且内核版本至少为310(如果是Ubuntu1204LTS,则要求内核版本至少是313)。可以使用uname–r命令来确认当前系统的内核版本:$uname-r3110-15-generic可以使用以下命令来升级内核:$sudoapt-getupdate$sudoapt-getinstalllinux-image-generic-lts-trusty$sudoreboot之后就可以安装Docker了:$wget-qO-/boot2docker/osx-installer/releases/latest获得。安装完成后,Boot2Docker位于Applications文件夹。注:Boot2Docker目前只是作为开发工具发布,请不要将其应用在生产环境中。创建Boot2Docker虚拟机:$boot2dockerinit$boot2dockerstart$boot2dockershellinit显示或设置Docker客户端环境变量$boot2dockershellinit$eval"$(boot2dockershellinit)"最后验证安装是否成功:$dockerrunhello-worldWindows:Windows与MACOS相同,也需要安装Boot2Docker工具。安装文件可以在/boot2docker/windows-installer/releases/latest获得。Windows版的Boot2Docker在启动时会自动确认环境变量,因此可以直接验证安装是否成功:$dockerrunhello-world。

测试环境和生产环境能互相转换么

大家做etl任务分测试环境和生产环境吗,各个环境之间怎么切换呢?

一般分 开发,测试,uat,生产环境。切换的话先导出资源库,在导入即可。

怎样利用镜像将生产环境复制到测试环境

通常企业不会直接导数据,而是复制整个生产环境作为测试环境,这样可以保证测试环境的配置和正式系统的一样。

目前测试环境规划时,通常有三套:联调测试环境、功能测试环境、准发布环境。

为了更接近用户的真实环境,比如可能会用一些真实的数据来测试软件,这时重点覆盖的用例应当是重要的业务流程,用户最常用的功能,本次新加的功能,对公司利益影响最大的功能等等

运行环境和测试环境

运行环境就是 机子支持软件的条件 比如说有些老游戏不能在windows环境下运行,只能在DOS下运行,就是说该游戏运行环境是DOS

同样测试环境就是能够支持软件进行测试的条件

开发环境跟测试环境于个人来说,通常是一样的。应为通常你就用同一部电脑。

具体说 我开发一个网站

开发环境:windows

tomcat

jdk

·

·

·

docker swarm 有在生产环境中用的企业吗

Docker Swarm 是官方发布的集群容器管理工具。它的特点是:比较轻量级,无缝支持标准的docker API。 深入浅出Swarm 一文很清晰地讲解了它的架构和命令。本文从零开始搭建并管理一个swarm集群。

准备工作

我们需要先安装 virtualBox 和 vagrant 。通过vagrant来驱动virtualBox搭建一个虚拟测试环境。首先在本地任意路径新建一个空文件夹比如 test ,运行以下命令:

virtual box host

mkdir test

cd test

vagrant init minimum/ubuntu-trusty64-docker

vi Vagrantfile

里面应该有一句 configvmbox = "minimum/ubuntu-trusty64-docker" ,在它的下面添加如下几行代码,相当于给它分配三台虚拟机,一台叫做 manager ,它的IP是 1921683317 ;另两台叫做 node1 和 node2 ,它们的IP是 1921683318 和1921683319 。

Vagrantfile

configvmdefine "manager" do | host |

hostvmhostname = "manager"

hostvmneork "private_neork", ip: "1921683317"

end

configvmdefine "node1" do | host |

hostvmhostname = "node1"

hostvmneork "private_neork", ip: "1921683318"

end

configvmdefine "node2" do | host |

hostvmhostname = "node2"

hostvmneork "private_neork", ip: "1921683319"

end

这个vagrant镜像已经在ubuntu的基础上帮我们安装了docker,用起来很方便。然后分别在三个终端运行以下命令启动并连接三台虚拟机。

virtual box host terminal 1

vagrant up

vagrant ssh manager

virtual box host terminal 2

vagrant ssh node1

virtual box host terminal 3

vagrant ssh node2

搭建环境

想要让swarm管理node,首先得让docker daemon支持TCP。在三台虚拟机上运行以下命令:

manager and node1 and node2

sudo sh -c 'echo DOCKER_OPTS=\"-H tcp:0000:2375 -H unix:/var/run/dockersock\" >> /etc/default/docker'

sudo rm /etc/docker/keyjson # 免得我们用vagrant生成的docker id都一样,删掉了重启docker服务会自动生成一个新的

sudo service docker restart

学环境监测这专业可以做什么

首先,是可以进 的环境监测站做环境监测工作,其次可以进环境治理公司当技术员(可以是环境监测,也可以其他工作),还可以进仪器公司当仪器设计、仪器检验、仪器应用、仪器售后、仪器咨询、仪器销售,可以进化工厂当化验员等等。

搭建windinws测试环境和linux测试环境有什么区别

没明白你想做什么,如果是应用程序测试环境,那安装linux系统,部署应用就行了,如果是测试数据库,就安装数据库软件

Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。

Memcached是一个自由开源的,高性能,分布式内存对象缓存系统。

MongoDB是一个基于分布式文件存储的数据库,文档型的非关系型数据库,与上面两者不同。

1性能上:

性能上都很出色,具体到细节,由于Redis只使用单核,而Memcached可以使用多核,所以平均每一个核上Redis在存储小数据时比Memcached性能更高。而在100k以上的数据中,Memcached性能要高于Redis,虽然Redis最近也在存储大数据的性能上进行优化,但是比起 Memcached,还是稍有逊色。

前两者性能差不多,大于 Mongodb。

2内存空间和数据量大小:

MemCached可以修改最大内存,采用LRU算法。Redis增加了VM的特性,突破了物理内存的限制。

MongoDB 适合大数据量的存储,依赖 *** 作系统 VM 做内存管理,吃内存也比较厉害,服务不要和别的服务在一起

3 *** 作便利上:

MemCached数据结构单一,仅用来缓存数据,而Redis支持更加丰富的数据类型,也可以在服务器端直接对数据进行丰富的 *** 作,这样可以减少网络IO次数和数据体积。

Mongodb 支持丰富的数据表达,索引,最类似关系型数据库,支持的查询语言非常丰富。

4可靠性上:

MemCached不支持数据持久化,断电或重启后数据消失,但其稳定性是有保证的。Redis支持数据持久化和数据恢复,允许单点故障,但是同时也会付出性能的代价。

MongoDB 从 18 版本开始采用 binlog 方式支持持久化的可靠性。

5应用场景:

Memcached:动态系统中减轻数据库负载,提升性能;做缓存,适合多读少写,大数据量的情况。

Redis:适用于对读写效率要求都很高,数据处理业务复杂和对安全性要求较高的系统。

两者的定位完全不同

Vagrant类似于Boot2Docker(一款运行Docker的最小内核),是一套虚拟机的管理环境,Vagrant可以在多种系统上和虚拟机软件中运行,可以在Windows。Mac等非Linux平台上为Docker支持,自身具有较好的包装性和移植性。

原生Docker自身只能运行在Linux平台上,但启动和运行的性能都比虚拟机要快,往往更适合快速开发和部署应用的场景。我推荐你去看看时速云,他们是一家全栈云原生技术服务提供商,提供云原生应用及数据平台产品,其中涵盖容器云PaaS、DevOps、微服务治理、服务网格、API网关等。大家可以去体验一下。 如果我的回答能够对您有帮助的话,求给大大的赞。

目前来看,Docker至少有以下应用场景:

1)测试:Docker很适合用于测试发布,将Docker封装后可以直接提供给测试人员进行运行,不再需要测试人员与运维、开发进行配合,进行环境搭建与部署。

2)测试数据分离:在测试中,经常由于测试场景变换,需要修改依赖的数据库数据或者清空变动memcache、Redis中的缓存数据。Docker相较于传统的虚拟机,更轻量与方便。可以很容易的将这些数据分离到不同的镜像中,根据不同需要随时进行切换。

3)开发:开发人员共同使用同一个Docker镜像,同时修改的源代码都被挂载到本地磁盘。不再因为环境的不同而造成的不同程序行为而伤透脑筋,同时新人到岗时也能迅速建立开发、编译环境。

4)PaaS云服务:Docker可以支持命令行封装与编程,通过自动加载与服务自发现,可以很方便的将封装于Docker镜像中的服务扩展成云服务。类似像Doc转换预览这样的服务封装于镜像中,根据业务请求的情况随时增加和减少容器的运行数量,随需应变。

具体到Docker技术在测试领域的应用,可以体现在:

1)快速搭建兼容性测试环境

从Docker的镜像与容器技术特点可以预见,当被测应用要求在各类Web服务器、中间件、数据库的组合环境中得到充分验证时,可以快速地利用基础Docker镜像创建各类容器,装载相应的技术组件并快速启动运行,测试人员省去了大量花在测试环境搭建上的时间。

2)快速搭建复杂分布式测试环境

Docker的轻量虚拟化特点决定了它可以在一台机器上(甚至是测试人员的一台笔记本电脑上)轻松搭建出成百上千个分布式节点的容器环境,从而模拟以前需要耗费大量时间和机器资源才能搭建出来的分布式复杂测试环境。

3)持续集成

Docker可以快速创建和撤销容器,在持续集成的环境中,可以频繁和快速地进行部署和验证工作。

以上就是关于docker容器安装oracle数据库全部的内容,包括:docker容器安装oracle数据库、Docker+ Kubernetes已成为云计算的主流(二十六)、一文教您如何通过 Docker 快速搭建各种测试环境等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9701898.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)