容器

Docker那些事儿之编排工具docker-compose

筅森魡賤 提交于 2019-12-14 02:19:46
前面已经讲解过docker的一些基础使用,镜像创建的操作过程,如果大量容器需要同时部署,一个一个容器进行服务器上的部署,估计要疯掉,在使用上我们需要找到更好更便捷的使用方式,今天要讲解的容器编排工具docker-compose就是其中之一 简介 Compose是一个用于定义和运行多容器Docker应用程序的工具。使用Compose,您可以使用YAML文件来配置应用程序的服务。然后,使用单个命令,您可以从配置中创建并启动所有服务。 docker-compose作为容器编排工具,专门用于处理多容器部署问题,当然,目前对于系统运维有更好的处理方式,比如k8s,由于笔者并不是系统运维人员,所以不会涉及这么深入,本文也只是浅显的介绍下docker-compose,记录下自己的使用过程 特征 单个主机上的多个隔离环境 compose使用项目名称将环境彼此隔离。每次我们使用docker-compose创建多个容器时,其会自动帮我们将彼此环境进行隔离,非常有用 在开发主机上,创建单个环境的多个副本,例如当您要为项目的每个功能分支运行稳定副本时 在CI服务器上,为了防止构建相互干扰,可以将项目名称设置为唯一的构建号 在共享主机或开发主机上,以防止可能使用相同服务名称的不同项目相互干扰 这里可以使用 -p 参数来设置此次compose启动的项目名,可以自行安装测试下 仅重新创建已更改的容器

Docker搭建Nginx

为君一笑 提交于 2019-12-14 01:39:00
1 查找 Docker Hub 上的 nginx 镜像 docker search nginx 2 这里我们拉取官方的镜像 docker pull nginx 3 等待下载完成后,我们就可以在本地镜像列表里查到 REPOSITORY 为 nginx 的镜像。 docker images nginx 4 以下命令使用 NGINX 默认的配置来启动一个 Nginx 容器实例: docker run --name runoob-nginx-test -p 8081:80 -d nginx runoob-nginx-test 容器名称。 the -d 设置容器在在后台一直运行。 the -p 端口进行映射,将本地 8081 端口映射到容器内部的 80 端口。 执行以上命令会生成一串字符串,类似 1 dd4380ba70820bd2acc55ed2b326dd8c0ac7c93f68f0067daecad82aef5f938 ,这个表示容器的 ID,一般可作为日志的文件名。 5 我们可以使用 docker ps 命令查看容器是否有在运行: docker ps 6 PORTS 部分表示端口映射,本地的 8081 端口映射到容器内部的 80 端口。 在浏览器中打开 http://127.0.0.1:8081/ ,效果如下: Welcome to nginx! If you see this

docker 容器常用命令

杀马特。学长 韩版系。学妹 提交于 2019-12-14 00:36:38
--------- 启动容器常用选项及用法 -------- docker run 常用选项及用法 如前边所说,容器是由镜像启动的 下面以 grafana/grafana:5.4.3 镜像为例 ,镜像 ID 是 088a3a431574 : 直接启动容器,并执行 bash shell(要想进入容器,必须要指定要执行的命令,只有 bash 可以进入容器),下面这种方式一般用来检查自己制作的镜像各项设置是否有问题。这样启动容器,退出后容器就会死掉,并且无法启动。 docker run -ti grafana/grafana:5.4.3 bash 后台启动容器(使用 -d 选项),并挂载目录或文件到容器中(使用 -v 选项,前边是宿主机路径,后边是容器路径) docker run -d -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3 上边的启动方式再增加个 容器开机启动 (--restart=always) docker run -d --restart=always -v /opt/grafana/data/grafana:/var/lib/grafana grafana/grafana:5.4.3 上边的启动方式再增加个 指定容器名称 ( --name=grafana) docker run -d

Drools 7.15.0 docker容器方式部署

烈酒焚心 提交于 2019-12-14 00:12:00
关于drools的相关介绍就不再赘述了,关于drools网上的资料都很少,或者都有些老了,最近折腾了一下,记录下安装部署的过程,希望能节省下大家的时间。 一、快速部署 1.拉取基础镜像,命令如下: docker run -p 8080:8080 -p 8001:8001 -d --name drools-workbench jboss/drools-workbench-showcase:7.15.0.Final docker run -p 8180:8080 -d --name kie-server --link drools-workbench:kie_wb jboss/kie-server-showcase:7.15.0.Final 2. 点击访问 ,账号密码:admin/admin 二、问题 1.drools中文规则乱码问题 由于我使用的是7.15.0版本,dockerfile中默认添加了JVM的文件编码格式 -Dfile.encoding=UTF-8 ,所以没有此问题了。 2.容器时区问题 由于docker中默认是零时区,需要在dockerfile中设置容器的时区,内容如下 RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' > /etc/timezone

Docker的网络介绍

元气小坏坏 提交于 2019-12-13 22:40:15
Docker 网络基础 Docker启动时, 会自动在主机上创建一个docker0虚拟网桥, 实际上是Linux的一个bridge,可以理解为一个软件交换机, 它会而挂载到它的网口之间进行转发 当创建一个Docker容器的时候, 同理会创建一对veth pair接口(当数据包发送到一个接口时, 另外一个接口也可以收到相同的数据包), 这对接口一端在容器内, 即eth0;另一端在本地并被挂载到docker0网桥, 名称以veth开头。 Docker容器的DNS和主机名 实际上容器中/etc目录下有3个文件是容器启动后被虚拟文件覆盖掉的, 分别是/etc/hostname、 /etc/hosts、 /etc/resolve.conf,通过在容器中运行mount命令可以查看。 Docker容器的5种网络模式 在使用docker run创建docker容器时, 可以用--net选项指定容器的网络模式, Docker有以下5种网络模式: 1. bridge模式 使用docker run --net=bridge指定, bridge模式是Docker默认的网络设置, 此模式会为每一个容器分配Network Namespace、 设置IP等, 并将一个主机上的Docker容器连接到一个虚拟网桥上。 此模式与外界通信使用NAT协议, 增加了通讯的复杂性, 在复杂场景下使用会有诸多 限制。

spring知识放送——压箱底的干货!干货!干货!

不打扰是莪最后的温柔 提交于 2019-12-13 17:46:12
不啰嗦,直接上!!! 一、Spring 的特点 轻量级 控制反转 面向切面 容器 框架集合 二、 Spring 核心组件 三、 Spring 常用模块 四、Spring 主要包 五、 Spring 常用注解 bean 注入与装配的的方式有很多种,可以通过 xml,get set 方式,构造函数或者注解等。简单易 用的方式就是使用 Spring 的注解了,Spring 提供了大量的注解方式。 六、Spring 第三方结合 七、 Spring IOC 原理 (1)概念 Spring 通过一个配置文件描述 Bean 及 Bean 之间的依赖关系,利用 Java 语言的反射功能实例化 Bean 并建立 Bean 之间的依赖关系。 Spring 的 IoC 容器在完成这些底层工作的基础上,还提供 了 Bean 实例缓存、生命周期管理、 Bean 实例代理、事件发布、资源装载等高级服务。 (2) Spring 容器高层视图 Spring 启动时读取应用程序提供的 Bean 配置信息,并在 Spring 容器中生成一份相应的 Bean 配 置注册表,然后根据这张注册表实例化 Bean,装配好 Bean 之间的依赖关系,为上层应用提供准备就绪的运行环境。其中 Bean 缓存池为 HashMap 实现 (3)IOC 容器实现 BeanFactory-框架基础设施 BeanFactory 是

随笔

折月煮酒 提交于 2019-12-13 14:56:57
Google 公司于 2014 年启动了 Kubernetes 项目。Kubernetes 是在 Google 的长达 15 年的成规模的产品级任务的经验下构建的,结合了来自社区的最佳创意和实践经验。 容器优势总结: 敏捷的应用创建与部署:相比虚拟机镜像,容器镜像的创建更简便、更高效。 持续的开发、集成,以及部署:在快速回滚下提供可靠、高频的容器镜像编译和部署(基于镜像的不可变性)。 开发与运营的关注点分离:由于容器镜像是在编译/发布期创建的,因此整个过程与基础架构解耦。 跨开发、测试、产品阶段的环境稳定性:在笔记本电脑上的运行结果和在云上完全一致。 在云平台与 OS 上分发的可转移性:可以在 Ubuntu、RHEL、CoreOS、预置系统、Google 容器引擎,乃至其它各类平台上运行。 以应用为核心的管理: 从在虚拟硬件上运行系统,到在利用逻辑资源的系统上运行程序,从而提升了系统的抽象层级。 松散耦联、分布式、弹性、无拘束的微服务:整个应用被分散为更小、更独立的模块,并且这些模块可以被动态地部署和管理,而不再是存储在大型的单用途机器上的臃肿的单一应用栈。 资源隔离:增加程序表现的可预见性。 资源利用率:高效且密集。 为什么我需要 Kubernetes,它能做什么? 至少,Kubernetes 能在实体机或虚拟机集群上调度和运行程序容器。而且,Kubernetes

玩坏docker笔记(八):Docker容器+常用指令

风格不统一 提交于 2019-12-13 12:44:08
容器启动时执行命令的三种方式:1)CMD命令,2)ENTRYPOINT指令 ,3)在docker run命令中指定 docker run ubuntu pwd //容器启动时,执行pwd命令 执行docker ps或docker container ls 可以查看docker host中当前运行的容器;执行docker ps -a 或dokcer container ls -a可以查看所有状态的容器。 让容器长期运行 有些容器运行一闪而过,如何保持其长期运行呢 ? docker run -d --name myfirstcontiner ubuntu /bin/bash -c "while true;do sleep 1;done" -d :后台运行 --nane:为容器制定一个名字 停止容器 docker stop 容器id/名字 通过 docker history 容器name/id 可以查看其运行情况 两种进入容器的方法 1)docker attach 通过docker attach可以attach到容器启动命令的终端 通过’长id‘attach到了容器的启动命令终端。 退出attach使用CTRL-p CTRL-q方式比较简单,只需要注意docker run时要同时指定-it选项。该方式只会退出docker attach,对容器没有影响。如果-it选项没有同时指定,CTRL

IDC最新预测:容器市场将呈现爆发式增长

我的梦境 提交于 2019-12-13 11:46:00
据IDC最新发布的《软件定义计算软件市场半年跟踪报告》显示,2019年上半年中国软件定义计算软件市场的市场规模达到了3.4亿美元,同比增长36.3%。IDC预测,该市场在数据中心现代化、企业基础架构云化以及云原生应用普及化的趋势下,在未来五年其复合增长率仍将达到24.8%,到2023年市场规模将达到20.3亿美元。 容器市场将呈现爆发式增长 现阶段,在软件定义计算软件的三个子市场中,虚拟化软件仍然占据了最大份额。IDC预测,在未来五年,随着中国企业服务器虚拟化渗透率逐渐提高并且趋向于稳定,虚拟化软件市场的增长将逐渐放缓;而云系统软件和容器基础架构软件则维持高增长,逐渐成为助推软件定义计算软件增长的主要动力。特别是近两年被大家关注的容器市场,更是呈现爆发式增长。 伴随着云原生和混合云的热潮,容器是这两年最被市场所关注,发展速度最快的IT领域之一。 容器发展之初,使用者大都集中在互联网企业,大多数传统企业还处于探索和评估阶段,或者借助开源版本尝试小范围部署容器。这两年随着技术方向更加的清晰化,容器相关开源社区积极的拓展生态和技术,企业数字化转型对于敏捷架构和创新的需求,以及在企业中出现了越来越多的最佳实践,容器的商业化市场初见雏形。 容器市场呈多元化,创新型厂商表现活跃 IDC预测容器基础架构软件市场2019的整体规模是7340万美元,其所带来的的容器相关市场(搭建容器