admin 管理员组文章数量: 887021
2023年12月22日发(作者:event造句)
狂神说Docker(下半场)版权声明:关于狂神说Java不为任何机构站台,编程是爱好,恭喜你发现宝藏男孩一枚~希望你们关注我是因为喜欢我!所有的课程都是免费的,任何利用我课程收费的都是骗子,请大家注意!B站唯一账号:狂神说Java 唯一公众号:狂神说学习前,三连关注分享支持,是最基本的尊重,拒绝白嫖!
所有学习,官网!Docker Compose简介DockerDockerFile build run 手动操作,单个容器!微服务。100个微服务!依赖关系。Docker Compose 来轻松高效的管理容器i。定义运行多个容器。官方介绍定义、运行多个容器。YAML file 配置文件。single command。 命令有哪些?Compose is a tool for defining and running multi-container Docker applications. With Compose,
you use a YAML file to configure your application’s services. Then, with a single command, you
create and start all the services from your configuration. To learn more about all the features of
Compose, see the list of features.所有的环境都可以使用 Compose。Compose works in all environments: production, staging, development, testing, as well as CI
workflows. You can learn more about each case in Common Use Cases.三步骤:
Using Compose is basically a three-step process:1. Define your app’s environment with a
Dockerfile so it can be reproduced file 保证我们的项目在任何地方可以运行。2. Define the services that make up your app in
so they can be run
together in an isolated es 什么是服务。 这个文件怎么写!3. Run
docker-compose up and Compose starts and runs your entire app.启动项目 作用:批量容器编排。我自己理解Compose 是Docker官方的开源项目。需要安装!Dockerfile 让程序在任何地方运行。 web服务。 redis、mysql、nginx ... 多个容器。 run
Compose
1234567891version: '2.0'services: web: build: . ports: - "5000:5000" volumes: - .:/code - logvolume01:/var/log links: - redis redis: image: redisvolumes: logvolume01: {}docker-compose up 100 个服务。Compose :重要的概念。服务services, 容器。应用。(web、redis、)项目project。 一组关联的容器。 博客。web、mysql。 安装1、下载
1sudo curl -L
"/docker/compose/releases/download/1.26.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose234# 这个可能快点!curl -L
/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose2、授权1sudo chmod +x /usr/local/bin/docker-compose 多看官网.....体验地址:/compose/gettingstarted/python 应用。计数器。 redis! 1、应用 2、Dockerfile 应用打包为镜像3、Docker-compose yaml文件 (定义整个服务,需要的环境。 web、redis) 完整的上线服务!4、启动 compose 项目(docker-compose up)
流程:1、创建网络2、执行 Docker-compose yaml
3、启动服务。Docker-compose yamlCreating composetest_web_1 ... doneCreating composetest_redis_1 ... done1、文件名 composetest2、服务12345678version: '3'services: web: build: . ports: - "5000:5000" redis: image: "redis:alpine"自动的默认规则?
docker imgaes12[root@kuangshen ~]# docker service lsError response from daemon: This node is not a swarm manager. Use "docker
swarm init" or "docker swarm join" to connect this node to swarm and try
again.默认的服务名 文件名_服务名 _ num多个服务器。集群。A B _num 副本数量服务redis服务 => 4个副本。集群状态。服务都不可能只有一个运行实例。 弹性、10 HA 高并发。kubectl service 负载均衡。3、网络规则10个服务 => 项目 (项目中的内容都在同个网络下。域名访问)
如果在同一个网络下,我们可以直接通过域名访问。 HA! 停止: docker-compose down ctrl+c docker-compose以前都是单个 docker run 启动容器。docker-compose。 通过 docker-compose 编写 yaml配置文件、可以通过 compose 一键启动所有服务,停止。! Docker小结:1、Docker 镜像。 run => 容器2、DockerFile 构建镜像(服务打包)3、docker-compose 启动项目(编排、多个微服务/环境)4、Docker 网络 yaml 规则 核心。!/compose/compose-file/#compose-file-structure-and-examples12# 3层!
34567891617version: '' # 版本services: # 服务 服务1: web # 服务配置
images build network ..... 服务2: redis .... 服务3: redis# 其他配置 网络/卷、全局规则volumes:networks:configs:学习,要掌握规律!只要多写,多看。 配置。!1、官网文档/compose/compose-file/#specifying-durations2、开源项目 dis、mysql、mq!
开源项目博客下载程序、安装数据库、配置.....
compose 应用。=> 一键启动!1、下载项目()2、如果需要文件。Dcokerfile
3、文件准备齐全(直接一键启动项目!) 前台启动docker -ddocker-compose up -d
一切都很简单! 实战1、编写项目微服务2、dockerfile 构建镜像3、 编排项目4、丢到服务器 docker-compose up 小结:未来项目只要有 docker-compose 文件。 按照这个规则,启动编排容器。!公司: docker-compose。 直接启动。网上开源项目: docker-compose 一键搞定。假设项目要重新部署打包1docker-compose up --build # 重新构建!
总结:工程、服务、容器项目 compose:三层工程 Porject服务 服务容器 运行实例! docker k8s 容器. Docker Compose 搞定! Docker Swarm集群
购买服务器4台服务器 2G!
到此,服务器购买完毕!1主,3从!
4台机器安装 Docker和我们单机安装一样技巧:xshell 直接同步操作,省时间。!
工作模式
搭建集群
私网、公网!172.24.82.149 用自己的!初始化节点
docker swarm initdocker swarm join 加入 一个节点!123# 获取令牌docker swarm join-token managerdocker swarm join-token worker把后面的节点都搭建进去!
100台!
1、生成主节点 init2、加入(管理者、worker) 目标:双主双从! Raft协议双主双从: 假设一个节点挂了!其他节点是否可以用!Raft协议: 保证大多数节点存活才可以用。 只要>1 ,集群至少大于3台!实验:1、将docker1机器停止。宕机! 双主,另外一个主节点也不能使用了!
2、可以将其他节点离开3、work就是工作的、管理节点操作! 3台机器设置为了管理节点。 十分简单:集群,可用! 3个主节点。 > 1 台管理节点存活!Raft协议: 保证大多数节点存活,才可以使用,高可用! 体会
弹性、扩缩容!集群!以后告别 docker run!docker-compose up! 启动一个项目。单机!集群: swarm
docker serivce
容器 => 服务!容器 => 服务!=> 副本!redis 服务 => 10个副本!(同时开启10个redis容器)体验:创建服务、动态扩展服务、动态更新服务。
灰度发布:金丝雀发布!12docker run 容器启动!不具有扩缩容器docker service 服务! 具有扩缩容器,滚动更新!查看服务 REPLICAS动态扩缩容
服务,集群中任意的节点都可以访问。服务可以有多个副本动态扩缩容实现高可用!弹性、扩缩容!10台! 10000台! 卖给别人! 虚拟化!服务的高可用,任何企业,云! 移除!docker swarm 其实并不难只要会搭建集群、会启动服务、动态管理容器就可以了! 概念总结swarm集群的管理和编号。 docker可以初始化一个 swarm 集群,其他节点可以加入。(管理、工作者)Node就是一个docker节点。多个节点就组成了一个网络集群。(管理、工作者)Service任务,可以在管理节点或者工作节点来运行。核心。!用户访问!Task容器内的命令,细节任务!
逻辑是不变的。命令 -> 管理 -> api -> 调度 -> 工作节点(创建Task容器维护创建!) 服务副本与全局服务
调整service以什么方式运行123456789docker service create --mode global --name haha alpine ping #场景?日志收集每一个节点有自己的日志收集器,过滤。把所有日志最终再传给日志中心服务监控,状态性能。docker service create --mode replicated --name mytom tomcat:7 默认的--mode string Service mode (replicated or global) (default "replicated") 拓展:网络模式: "PublishMode": "ingress"Swarm:Overlay:ingress : 特殊的 Overlay 网络! 负载均衡的功能! IPVS VIP! 虽然docker在4台机器上,实际网络是同一个! ingress 网络 ,是一个特殊的 Overlay 网络
整体! k8s! Docker Stack
docker-compose 单机部署项目!Docker Stack部署,集群部署!12345# 单机docker-compose up -d # 集群docker stack deploy
6789728293637# docker-compose 文件version: '3.4'services: mongo: image: mongo restart: always networks:
- mongo_network deploy: restart_policy: condition: on-failure replicas: 2 mongo-express:
image: mongo-express restart: always networks:
- mongo_network ports: - target: 8081 published: 80 protocol: tcp mode: ingress environment: ME_CONFIG_MONGODB_SERVER: mongo ME_CONFIG_MONGODB_PORT: 27017 deploy: restart_policy: condition: on-failure replicas: 1networks: mongo_network: external: true Docker Secret安全!配置密码,证书!
Docker Config配置
Docker下半场!Docker Compose Swarm!了解,学习方式:网上找案例跑起来试试!查看命令帮助文档 --help, 官网! 拓展到K8S云原生时代Go语言!必须掌握! Java、Go! 并发语言! B语言 C 语言的创始人 。Unix创始人 V8Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及
CSP-style 并发计算。go 指针! 罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)于2007年9月开始设计Go,稍后Ian Lance Taylor、Russ Cox加入项目。Go是基于Inferno操作系统所开发的。Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。 目前,Go每半年发布一个二级版本(即从a.x升级到a.y) java => Gozijie => Go
版权声明:本文标题:41、Docker下 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1703181966h441295.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论