Docker Compose

Docker系列之.NET Core入门(三)

别来无恙 提交于 2020-04-24 16:59:13
前言 在Docker生态系统中除了上一节所讲解的基本概念,还有其他专业术语,本文我们将一笔带过,同时会开始陆续进入到在.NET Core中使用Docker。 专业术语 Docker Engine(Docker引擎):客户端 - 服务器应用程序。 Docker公司将Docker Engine分为两个产品。 Docker Community Edition(CE)基于开源工具且免费,我们学习时可以使用这款产品。 Docker Enterprise附带了其他功能支持,比如管理和安全等等功能。 Docker Client(Docker客户端):我们与Docker进行交互的主要方式。 使用Docker命令行界面(CLI)时,在终端中键入以docker开头的命令,Docker Client会使用Docker API将命令发送到Docker守护进程中。 Docker Daemon(Docker守护进程):监听Docker API请求的Docker服务器。 Docker守护进程主要管理镜像,容器,网络和卷。 Docker Volumes(Docker卷):存储创建应用程序和运行应用程序持久化数据的最佳方式。 Docker Registry:存储Docker镜像的远程注册位置。 我们将镜像推送到注册表并从注册表中提取图像,我们可以托管自己的注册表或使用供应商商的注册表。 Docker Hub

Visual Studio Code + Docker

旧街凉风 提交于 2020-04-24 08:21:22
前言 VS Code是一个年轻的编辑器,但是确实是非常犀利。通过本篇,老司机带你使用VS Code玩转Docker——相信阅读本篇之后,无论是初学者还是老手,都可以非常方便的玩转Docker了!所谓是“工欲善其事必先利其器”,VS Code,你值得拥有! 目录 ⊙使用 Visual Studio Code玩转Docker ⊙官方扩展插件Docker ⊙Docker Compose扩展插件 ⊙最后 使用 Visual Studio Code玩转Docker Visual Studio是我们熟知的宇宙第一IDE,而Visual Studio Code(简称VS Code)则是微软推出的开源的跨平台编辑器,自从出世,一直是战斗力爆表——短短4年,就已拔得头筹,并且得到了众多开发者的拥护。如下图所示,以下是Stack Overflow 的 2018 年开发者最受欢迎的开发工具调查结果: 在Stack Overflow 的 2018 年开发者调查中,VSCode 成为了最受欢迎的开发工具 目前VisualStudio Code已经拥有了超过一万个插件,插件市场生态是极其丰富。同时其对所有的编程语言都非常友好(体验很不错),包括Docker。接下来,我们就说说Visual Studio Code对Docker的一些支持。 官方扩展插件Docker VS

MacOS安装Docker傻瓜式教程

微笑、不失礼 提交于 2020-04-24 03:01:08
最近电脑越来越卡了,为了减少系统开销,以及后期维护方便,所以考虑将本地安装一些服务迁移到docker中去管理,这一切的基础是要先有docker服务,所以本文就先记录怎样在mac上安装配置docker,也给后面需要的朋友一点借鉴。想了解centos安装docker的可以查看以前的文章 Docker学习笔记一:Docker简介与安装 。 关于docker简介,本文不做过多讲解,感兴趣的同学可以自行去官网或者中文网查看。 docker官网:https://www.docker.com/ docker中文网:http://www.docker.org.cn/ 下面就开始macos系统的docker容器的安装之旅,所有步骤都是亲身实践,可放心观看。 一、安装Docker 1、先检查有无安装docker 2、使用brew安装,耐心等待下载完成 3、在应用程序中找到docker图标,点击运行 4、一路next 5、输入电脑密码 6、输入dockerid登录或者直接关闭后面输入 至此,docker就算安装完成,打开iterm,查看docker相关信息。 二、查看docker相关信息 1、查看docker信息 2、检查Docker Engine,Docker Compose和Docker Machine的版本 如果你的docker,docker-compose和docker

玩一玩docker自动编排工具——docker compose的介绍和使用

巧了我就是萌 提交于 2020-04-23 11:01:08
玩一玩docker自动编排工具——docker compose 前言 ​ 上两篇文章都是再玩儿Dockerfile,主要是基于Dockerfile构建各种服务镜像。而本文将介绍及演示docker的自动编排工具——docker compose的概念和使用。 什么是docker compose? ​ 先前我们在使用Dockerfile构建镜像时,在编写好Dockerfile文件以及其他必要文件后,需要使用docker build 、docker run 等命令操作{创建,启动,停止等}容器。然而,在微服务架构体系中,一个应用系统一般包含若干个服务器,每个微服务通常都会部署多个实例,如果每个服务都要手动启停,那么这样效率太低了,而且维护也非常不方便。 ​ 因此,便有了docker compose,它可以轻松、高效地管理容器,是一个用于定义和运行多容器docker的应用程序工具。 下面结合实际例子来使用以下docker compose工具吧,之后会给出编排文件常用的字段介绍以及docker-compose的相关命令介绍。 基于docker compose工具构建nginx容器服务 首先,我们需要创建一个目录,其中需要包含一个构建Dockerfile的nginx目录,首页页面测试目录以及docker-compose.yml文件 所以,一方面我们需要docker安装环境,也需要安装docker

行车记+翻车记:.NET Core 新车改造,C# 节能降耗,docker swarm 重回赛道

狂风中的少年 提交于 2020-04-23 07:27:24
非常抱歉,10:00~10:30 左右博客站点出现故障,给您带来麻烦了,请您谅解。 故障原因与博文中谈到的部署变更有关,但背后的问题变得非常复杂,复杂到我们都在怀疑与阿里云服务器 CPU 特性有关。 这篇博文本来准备 9:30 左右发布的,但发布博文时出现了 docker swarm 部署异常情况,切换到 docker-compose 部署后问题依旧,一直到 10:30 左右才恢复正常,继续发布这篇博文,在标题中加上了“翻车记”。 原先的博文正文开始: 周一向大家 汇报车况 之后,我们的 .NET Core 新车继续以 docker-compose 手动挡的驾驶方式行驶在信息高速公路上,即使昨天驶上了更快的高速(并发量更大的访问高峰),也没有翻车。经过这周3天访问高峰的考验,我们终于可以充满信心地宣布——我们度过了新车上路最艰难的磨合期,开新车的剧情从“翻车记”进入到了“行车记”。 翻车成为历史,行车正在进行时,但离我们的目标“飙车”还有很长的一段距离,“行车记”更多的是修车记,新车改造记。 目前这辆 .NET Core 新车有2个重大问题,一是油耗高(CPU消耗高),有时还会断油(CPU 100% 造成 502),二是手动挡驾驶实在太累。 针对油耗高问题,这两天我们从节能降耗角度对博客系统的 C# 代码进行了优化。 从日志中发现,有些特别长的 url 会造成 ASP.NET

Grafana 日志聚合工具 Loki

空扰寡人 提交于 2020-04-22 13:24:36
Loki 是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。它的设计非常经济高效且易于操作,因为它不会为日志内容编制索引,而是为每个日志流编制一组标签。项目受 Prometheus 启发,官方的介绍就是: Like Prometheus, but for logs. ,类似于 Prometheus 的日志系统。 介绍 与其他日志聚合系统相比, Loki 具有下面的一些特性: 不对日志进行全文索引。通过存储压缩非结构化日志和仅索引元数据,Loki 操作起来会更简单,更省成本。 通过使用与 Prometheus 相同的标签记录流对日志进行索引和分组,这使得日志的扩展和操作效率更高。 特别适合储存 Kubernetes Pod 日志; 诸如 Pod 标签之类的元数据会被自动删除和编入索引。 受 Grafana 原生支持。 Loki 由以下3个部分组成: loki 是主服务器,负责存储日志和处理查询。 promtail 是代理,负责收集日志并将其发送给 loki 。 Grafana 用于 UI 展示。 安装 DockerHub 上提供了 Loki 和 Promtail 的 Docker 镜像,为了方便我们这里直接使用 docker-compose 进行一键安装,其他方式可以参考 Loki 的 文档介绍 。 首先直接 Clone 源代码: $

Wayne

ε祈祈猫儿з 提交于 2020-04-22 10:14:50
Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能解决当前眼下诸多问题,出于推动公司容器化进程的原因选择开始使用,当前所有环境都已经在使用中。借助官方的介绍Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。 附上: 喵了个咪的博客: w-blog.cn wayne官方Git地址: https://github.com/Qihoo360/wayne/blob/master/README-CN.md PS:当前最新版本 v1.8.6,官方暂时不支持版本升级能力,不要轻易尝试版本升级; Wayne 已大规模服务于 360 搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住了生产的考验。 一、Wayne介绍 要引入任何一个工具首先需要看到问题,如果盲目的引入工具提出要求,有时候不但达不到效果还增加了研发成本。 当时笔者在公司推动容器化陷入了一个僵局,环境都已经准备好了,但是有很多遗留的包袱需要迁移里面就涉及到如下的难点了: 基础yaml文件难以管理,之前使用git维护不便/更新迟滞 开发水平不一,编写yaml文件经常出现各种问题 开发环境需要排查问题登录容器shell

Docker部署web环境之Lanmp

萝らか妹 提交于 2020-04-22 04:21:22
1. 案例一 整套项目多容器分离通过docker-compose部署lanmp环境 中方文档参考网址: docker/kubernets网址 http://www.dockerinfo.net/document docker网络关系 同一网段之间容器互通,不同网络之间容器相互隔离,比如,docker0网段和docker1网段内的容器; 不同网段内的容器如果想要互通,可以通过映射到物理网卡上的端口来进行通信,也是可以的; 1.1 介绍 compose 是一个定义和管理多容器的工具,使用python语言编写。使用compose配置文件描述多个容器应用的架构,比如使用什么镜像,数据卷,网络,映射端口等;然后一条命令管理所有服务,比如启动,停止,重启等。 1.2 安装docker环境 参考网址 https://docs.docker.com/install/linux/docker-ce/centos/ 参考网址 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo yum install -y docker-ce systemctl start

TiDB之mac上搭建及调试技巧

人盡茶涼 提交于 2020-04-22 03:54:52
此文目的 由于本人最近已经成为TiDB的粉丝,所以就开始各种研究TiDB的源码,研究源码这个事情,首先就需要在自己电脑上不断的调试及修改。TiDB本身的代码是非常容易编译和调试的,但是要把PD、TiKV集群同时在本机上建立起来,还是有一点难度的。好在pingcap官方提供了docker-compose搭建集群的方式,可以快速的在个人电脑上启动一个TiDB的集群。但是,我要的不只是一个集群,我还希望在我的mac上实时编译调试TiDB服务,这个TiDB服务能够和docker-compose的集群里的PD和TiKV进行实时的通讯。我今天仔细分析了一下,最终总结出两个问题需要解决: PD和TiKV的端口需要暴露给宿主机; 宿主机上的TiDB服务需要解决docker-compose服务内部域名调用的问题; 解决方案 第一个问题比较容易解决,docker本身就提供了解决方案,就是把docker内部的端口映射给宿主机,这样在宿主机上就可以直接访问这个端口。第二个问题,我还是思考了一会,最后决定使用修改本机host的方式来完成映射。 mac上需要增加的host如下: 127 .0 .0 .1 pd0 127 .0 .0 .1 pd1 127 .0 .0 .1 pd2 127 .0 .0 .1 tikv0 127 .0 .0 .1 tikv1 127 .0 .0 .1 tikv2 大家一看也就明白了

ff4j spring boot jdbc 基本试用

孤街浪徒 提交于 2020-04-21 18:55:06
官方也提供了spring boot jdbc 的demo,但是文档不是很清晰,在基础上做了修改,方便学习 环境准备 docker-compose 文件 主要是mysql 数据库的准备, 当然testcontainer也是一个很不错的选择(测试环境使用) version: "3" services: mysql: image: mysql: 5.7.16 ports: - 3306: 3306 command: -- character - set - server = utf8mb4 -- collation - server = utf8mb4_unicode_ci environment: MYSQL_ROOT_PASSWORD: dalongrong MYSQL_DATABASE: ff4j_v1 TZ: Asia / Shanghai 代码使用 简单说明 默认官方的需要包含数据,但是为了测试的方便,提供了autocreate 以及createSchema,对于schema 也可以自己通过sql 导入 项目结构 ├── docker - compose. yaml ├── pom. xml └── src └── main ├── java │ └── org │ └── ff4j │ └── sample │ ├── Application. java │ ├──