Docker Compose

Docker基本操作

岁酱吖の 提交于 2020-12-02 05:44:43
一、镜像构建 1、使用pull + commit a、镜像拉取 docker pull,可从官方仓库、第三方库、私有仓库下载 b、启动并进入容器 docker run -it 镜像id /bin/bash c、容器中作修改,eg.安装常用工具 apt-get update 安装vim,apt-get install vim 安装ifconfig,netstat,apt-get install net-tools 安装ping,apt-get install iputils-ping d、保存容器到镜像 docker commit 容器id 镜像名称 2、使用Dockerfile + docker-compose.yml a、编写Dockerfile b、构建基础镜像 docker build -t 镜像名 dockerfile所在路径 eg. docker build -t zhonghaijing/bstkubuntu . c、容器编排, docker-compose.yml 编写 d、容器创建 docker-compose up 二、镜像保存 1、本地保存 持久化镜像 docker save 镜像名 > **.tar eg. docker save zhonghaijing/bstkubuntu > .bstkUbuntu.tar 2、上传到docker hub a

docker 使用过程的问题

扶醉桌前 提交于 2020-12-02 02:42:42
1、有关挂载目录在容器中权限问题: 摘自 :http://note.qidong.name/2018/01/docker-volume-permission/ 在 Docker 中,需要把host的目录挂载到container中作为volume使用时,往往会发生文件权限问题。 常见的现象是,container对该路径并无写权限,以致其中服务的各种千奇百怪的问题。 导致这类问题的原因,是container内外的UID不同。 比如,host当前使用docker的用户UID是1000(这是默认第一个用户的UID)。 如果container内的UID是2000,那么host创建的目录对container来说就并非owner,默认情况下不可写入。 此外还有一种情况,那就是挂载前,host上不存在被挂载的目录。 Docker 会以root权限,先创建该目录,再挂载。 这就导致,即使host与container的UID都是1000,也会出现无写权限的情况。 这种现象,只会在初始化时出现,但也足够令新手困惑,令老手厌烦。 为什么在Dockerfile中不能把volume的权限配置好? 因为Dockerfile是对image的描述,而volume则是container的内容。 Dockerfile中做出的权限配置,对非volume来说是可以生效的,而对volume则不然。 本质上

filebeat + ELK 部署篇

心不动则不痛 提交于 2020-11-30 21:48:01
ELK Stack Elasticsearch:分布式搜索和分析引擎,具有高可伸缩、高可靠和易管理等特点。基于 Apache Lucene 构建,能对大容量的数据进行接近实时的存储、搜索和分析操作。通常被用作某些应用的基础搜索引擎,使其具有复杂的搜索功能; Logstash:数据收集引擎。它支持动态的从各种数据源搜集数据,并对数据进行过滤、分析、丰富、统一格式等操作,然后存储到用户指定的位置; Kibana:数据分析和可视化平台。通常与 Elasticsearch 配合使用,对其中数据进行搜索、分析和以统计图表的方式展示; Filebeat:ELK 协议栈的新成员,一个轻量级开源日志文件数据搜集器,基于 Logstash-Forwarder 源代码开发,是对它的替代。在需要采集日志数据的 server 上安装 Filebeat,并指定日志目录或日志文件后,Filebeat 就能读取数据,迅速发送到 Logstash 进行解析,亦或直接发送到 Elasticsearch 进行集中式存储和分析。 目前成熟架构(亿级): Filebeat * n + redis + logstash + elasticsearch + kibana 中小型(本文部署): Filebeat*n +logstash + elasticsearch + kibana Docker 部署Filebeat

Docker学习笔记之Docker应用于服务化开发

让人想犯罪 __ 提交于 2020-11-28 09:48:37
0x00 概述 上一节里我们谈到了小型的独立项目如何使用 Docker Compose 来搭建程序的运行环境,对于由多人或多部门参与的中大型服务化架构的项目,仅由一个 Docker Compose 项目来管理它们的运行环境显然是不切实际的。在这一小节里,我们就谈谈如何在服务化开发中合理利用 Docker 来搭建环境。 0x01 服务开发环境 在开始之前,我们依然来设定一个场景。在这里,假定我们处于一个 Dubbo 治下的微服务系统,而工作是开发系统中某一项微服务。 微服务开发与上一节里我们提到的小型项目开发在环境搭建上有一定的区别,我们要合理地调整 Docker 的使用方法和策略,就必须先了解这些区别。 在微服务开发中,我们所开发的功能都不是完整的系统,很多功能需要与其他服务之间配合才能正常运转,而我们开发所使用的机器时常无法满足我们在一台机器上将这些相关服务同时运行起来。 我们仅仅是开发某一部分服务的内容,既对其他服务的运转机制不太了解,又完全没有必要在自己的机器上运行其他的服务。所以我们最佳的实践自然就是让参与系统中服务开发的同事,各自维护自己开发服务的环境,而直接提供给我们对应的连接地址使用服务即可。 更确切地说,我们在开发中,只需要在本地搭建起自己所开发服务的运行环境,再与其他开发者搭建的环境互联即可。 搭建本地环境 在我们的开发机器上,我们只需要运行我们正在开发的服务

Ubuntu安装docker环境

自古美人都是妖i 提交于 2020-11-27 12:37:43
安装 docker # step 1: 安装必要的一些系统工具 sudo apt-get update sudo apt-get -y install apt-transport-https ca-certificates curl software-properties-common # step 2: 安装GPG证书 curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add - # Step 3: 写入软件源信息 sudo add-apt-repository "deb [arch=amd64] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable" # Step 4: 更新并安装Docker-CE sudo apt-get -y update sudo apt-get -y install docker-ce docker-compose # 安装指定版本的Docker-CE: # Step 1: 查找Docker-CE的版本: # apt-cache madison docker-ce # docker-ce | 17.03.1~ce-0~ubuntu-xenial |

Docker,Docker-Compose,Docker Swarm,Kubernetes之间的区别

♀尐吖头ヾ 提交于 2020-11-27 09:07:50
来源: https://blog.csdn.net/notsaltedfish/article/details/80959913 Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由 Docker创建 ,运行在Docker中,其他相关的容器技术都是以 Docker为基础 ,它是我们使用其他容器技术的 核心 。 Docker-Compose Docker-Compose 是用来管理你的容器的,有点像一个容器的管家,想象一下当你的Docker中有成百上千的容器需要启动,如果一个一个的启动那得多费时间。有了Docker-Compose你只需要编写一个文件,在这个文件里面声明好 要启动的容器 , 配置一些参数 ,执行一下这个文件,Docker就会按照你声明的配置去把 所有的容器 启动起来,但是Docker-Compose只能管理 当前主机 上的 多个 Docker容器,也就是说 不能去启动其他主机 上的Docker容器。 Docker Swarm Docker Swarm 是一款用来管理 多主机 上的Docker容器的工具,可以负责帮你 启动容器 ,监控 容器状态 ,如果容器的状态不正常它会帮你 重新帮你启动 一个新的容器,来 提供服务 ,同时也提供 服务之间 的 负载均衡 ,而这些东西Docker-Compose 是做不到的

Docker安装Zookeeper集群

别来无恙 提交于 2020-11-25 18:51:50
一、 安装Docker (略) 二、 安装Docker Compose (略) 三、 编写docker-compose.yml文件 3.1 新建配置文件 touch cluster.yml vim cluster.yml cluster.yml 配置如下 version: '3.7' services: zoo1: image: zookeeper:3.5.5 restart: always hostname: zoo1 container_name: zookeeper_1 volumes: - /usr/local/use_data/zookeeper/cluster/zoo_1/data:/data - /usr/local/use_data/zookeeper/cluster/zoo_1/log:/datalog ports: - 2181:2181 environment: ZOO_MY_ID: 1 ZOO_SERVERS: server.1=0.0.0.0:2888:3888;2181 server.2=zoo2:2888:3888;2181 server.3=zoo3:2888:3888;2181 zoo2: image: zookeeper:3.5.5 restart: always hostname: zoo2 container_name: zookeeper

windows下配置docker

时间秒杀一切 提交于 2020-11-24 14:33:05
下了个代码里面用docker启动,要配个windowdocker 环境 记录一下: 1)安装虚拟机 vmbox 地址 https://github.com/boot2docker/windows-installer/releases 步可以通过其它方式安装 我是通过 docker-install.exe (DockerToolbox-1.8 版本),然后里面包含了 git (由于之前有安装过,不选) mingw64(由于之前有安装过,不选) vmbox 这个装上,也懒得去别的地方找了 DockerToolbox-1.8(注意了,这个版本的boot2docker 有问题,连接不上github,不选) 2)启动 boot2docker linux 虚拟机镜像 https://www.docker.com/products/docker-desktop 官方下载 需要填入信息,麻烦 或者 https://download.csdn.net/download/moorechen_68573397/10316025 csdm下载 ,需要csdn帐号积分   这步需要下载 DockerToolbox-1.9.1 安装包,里面自带了 vmbox的一个镜像 boot2docker 上一步装好了vmbox 现在要安装linux系统了, DockerToolbox-1.9

【故障公告】再次出现数据库 CPU 居高不下的问题以及找到了最可能的原因

岁酱吖の 提交于 2020-11-24 09:44:28
非常非常抱歉,今天上午的故障又一次给大家带来麻烦了,再次恳请大家的谅解。 在昨天升级阿里云 RDS SQL Server 实例的配置后(详见 昨天的博文 ),万万没有想到,今天上午更高配置的阿里云 RDS 实例依然出现了 CPU 居高不下的问题。 在数据库 CPU 高的情况下,有时对访问速度影响不大,有时巨慢无边,在今天上午的故障期间,我们通过2次主备切换才恢复了正常。 下午,我们我们调整了服务器的部署,用了更多服务器进行混合部署(docker-compose与docker swarm),情况有了明显改善。 但是,15:15 开始数据库 CPU 又飚了上去,但访问速度没有受到明显影响,一致坚持到 16:50 左右,在扛不住的时候,我们再次通过主备切换恢复了正常。 这次恢复正常后,我们才突然想到,数据库每天一大早会跑一个整理索引碎片的任务,是不是升级后这个任务不能正常执行了?打开 SSMS 一看,果然是。 昨天因为升级 SQL Server 后重建备库,整理索引碎片任务失败了。 Date 9/5/2019 06:30:00 Log Job History (Reorganize Index) Step ID 1 Server SD39184A Job Name Reorganize Index Step Name Reorganize Index Duration 00:00:00

Docker从入门到实践

我怕爱的太早我们不能终老 提交于 2020-11-24 02:38:32
一般说来 SPA 的项目我们只要启一个静态文件 Server 就可以了,但是针对传统项目就不一样了,一个项目会依赖很多服务端程序。之前我们的开发模式是在一台开发机上部署开发环境,所有人都在这台开发机上使用 Samba 连接开发。老式开发是没什么问题的,但是前端因为引入了编译流程,增加了 Webpack 打包构建的行为,当多人共同开发的时候经常会因为内存爆满进程被杀导致打包失败。痛定思痛后为了解决这个问题,我决定将 Docker 引入我们的开发环境,通过将开发环境本地化来解决这个问题,所以有了本文。 本文内容主要是概括性,详情参照文尾链接 1 也可参考视频链接 2 Why Docker? 普通的 Web 服务一般都会依赖很多程序,例如 PHP, MySQL, Redis, Node 等等。正常情况下我们会去手动安装这些程序来配置服务需要的环境,这样会带来几个问题: 同一环境不同的服务依赖同一个软件的不同版本,经典的例如 python2 和 python3, 本地 Mac 上是 PHP7,但是服务只能支持 PHP5.6。 同一环境不同的服务可能会修改同一份文件,例如系统的配置,Nginx 的配置等,都会造成影响。 同一服务在多台机器上部署需要手工操作,导致大量的人力成本浪费。 这样逐个的安装软件实在是太麻烦了,所以大家就想干脆就直接把整个系统打包好放到机器上得了,于是就出现了虚拟机技术