docker容器编排原来这么丝滑~

Python微信订餐小程序课程视频

https://edu.csdn.net/course/detail/36074

Python实战量化交易理财系统

https://edu.csdn.net/course/detail/35475

前言:

请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i

概念介绍:

Docker

Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker创建,运行在Docker中,其他相关的容器技术都是以Docker为基础,它是我们使用其他容器技术的核心。

Docker-Compose

前面我们使用 Docker 的时候,定义 Dockerfile 文件,然后使用 docker build、docker run 等命令操作容器。然而微服务架构的应用系统一般包含若干个微服务,每个微服务一般都会部署多个实例,如果每个微服务都要手动启停,那么效率之低,维护量之大可想而知

优点:

根据定义的docker-compose.yaml配置文件批量容器编排,轻松高效的管理容器定义,Docker就会按照你声明的配置去把所有的容器启动起来及运行

缺点:

但是Docker-Compose只能管理当前主机上的Docker,也就是说不能去启动其他主机上的Docker容器

使用事项:

compose是docker官方的开源项目,需要安装!与它配对使用的是一个docker-compose.yaml文件,docker-compose命令必须在一个包含docker-compose.yaml文件目录下才能使用。

Compose 使用的三个步骤:

  • 使用Dockerfile定义应用程序的环境。
  • 使用 docker-cmpose.yaml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-cmpose up 命令来启动并运行整个应用程序。

**docker-cmpose.yaml**的配置案例如下(配置参数参考下文):

version: "3.0" # 对于docker版本号
services: #定义服务web: #web引用,自己编写的程序,下面是应用配置build: . #获取当前目录下Dockerfile文件编译depends\_on: #代表启动顺序- db- redis ports:- "5000:5000" #端口暴露volumes: #挂载路径- .:/code- logvolume01:/var/loglinks:- redisredis: #redis应用image: redisdeploy:replicas: 6 #副本数db: #db应用images:postgres
volumes:logvolume01: {}

实践

一、环境准备

在 Linux 系统上安装 Docker

使用compose必然需要docker

1.1 yum安装Docker

yum install docker    #安装docker,需要root

1.2 查看版本

docker --version  #查看版本

样例输出:

1.3 启动docker

sudo systemctl start docker.service    #启动 Dockersudo systemctl enable docker.service #关闭Docker

在 Linux 系统上安装 Compose

由于compose是docker官方的开源项目,需要安装!!!

1.1 下载compose

# 国外sudo curl -L "https://github.com/docker/compose/releases/download/v1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 
# 国内(推荐)sudo curl -L "https://get.daocloud.io/docker/compose/releases/download/1.25.5/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

1.2 添加可执行权限

sudo chmod +x /usr/local/bin/docker-compose #授权

1.3 查看版本

docker-compose --version #查看版本

样例输出:

二、项目实施

2.1 创建项目

此处以**Springboot项目为例,其pom.xml依赖**如下

 <dependencies><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-webartifactId>dependency><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-testartifactId><scope>testscope>dependency><dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-data-redisartifactId>dependency>dependencies>

2.2 新增application.properties配置

注:在此示例中,redis是应用程序网络上的 redis 容器的主机名

#配置启动端口
server.port=8888
#配置redis地址,此处指定后续dockers镜像名称
spring.redis.host=redis 

2.3 编写程序计数器

package com.example.compose;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class IndexController {/*** .* 注入redis*/@Autowiredprivate StringRedisTemplate redisTemplate;/*** .* 程序计数器,每访问一次就+1** @return*/@GetMapping("/hello")public String hello() {Long views = redisTemplate.opsForValue().increment("views");return "hello docker compose views:" + views;}
}

2.4  创建 Dockerfile

在你的项目目录中,创建一个Dockerfile。有关编写 Dockerfile 更多信息,请参阅 Docker 用户指南 和Dockerfile 参考

#指定jdk1.8
FROM java:8
#当前jar拷贝到容器中指定名称
COPY *.jar /app.jar
#程序运行时指定程序端口
CMD ["--server-port=8888"]
#暴露端口
EXPOSE 8888
#运行
ENTRYPOINT ["java", "-jar","/app.jar"]

2.4 编排服务

在你的项目目录中创建一个名docker-compose.yaml的文件。定义了两个服务:composeappredis.

version: '3.0' #对应版本号services:composeapp:build: . #表示获取当前目录下Dockerfile文件进行编译#dockerfile: Dockerfile #指定当前目录下的文件image: composeapp #镜像名称depends\_on: #优先启动- redisports: #端口映射- "8888:8888"redis: #拉取镜像image: "library/redis:alpine"

**友情提示:**上述版本号对比示例图。官网对比链接

2.5 将项目打包

三、服务上传启动

3.1 Linux创建一个目录

 mkdir my\_composeapp  #创建目录cd my\_composeapp #进入

3.2 上传相关文件

上传项目打包后的**jarDockerfiledocker-compose.yaml**相关配置文件

3.3 启动compose服务

注:docker-compose命令必须在一个包含docker-compose.yaml文件目录下才能使用

docker-compose up docker-compose up -d #-d【后台启动】docker-compose down  #关闭 【ctrl + c】

样例输出:

项目启动,页面输出日志

3.4 查看运行的容器

此处可见已拉取redis镜像并生成了容器、及已生成java项目运行容器

3.5 访问样例

curl localhost:8888/hello  #访问测试

样例输出:

至此,docker-compose使用简直在方便了!!!大大简化了我们的部署工作。学废的小伙伴记得给自己加鸡腿~

总结:

我是南国以南i记录点滴每天成长一点点,学习是永无止境的!转载请附原文链接!!!

参考链接、参考链接、

  • 前言:

  • 概念介绍:

  • Docker

  • Docker-Compose

  • Compose 使用的三个步骤:

  • 实践

  • 一、环境准备

  • 在 Linux 系统上安装 Docker

  • 1.1 yum安装Docker

  • 1.2 查看版本

  • 1.3 启动docker

  • 在 Linux 系统上安装 Compose

  • 1.1 下载compose

  • 1.2 添加可执行权限

  • 1.3 查看版本

  • 二、项目实施

  • 2.1 创建项目

  • 2.2 新增application.properties配置

  • 2.3 编写程序计数器

  • 2.4  创建 Dockerfile

  • 2.4 编排服务

  • 2.5 将项目打包

  • 三、服务上传启动

  • 3.1 Linux创建一个目录

  • 3.2 上传相关文件

  • 3.3 启动compose服务

  • 3.4 查看运行的容器

  • 3.5 访问样例

  • 总结:

    __EOF__

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1G7yEAUP-1649393417885)(https://blog.csdn.net/bgyb/p/16113709.html)]https://blog.csdn.net/bgyb/p/16113709.html - 关于博主: 评论和私信会在第一时间回复。或者直接私信我。

  • 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
  • 声援博主: 如果您觉得文章对您有帮助,可以点击文章右下角**【[推荐](javascript:void(0)😉】**一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/401139.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网思维的“独孤九剑”

课前秀&#xff1a;三个段子 第一个段子&#xff1a;有一个毫无餐饮行业经验的人&#xff0c;他开了一家餐馆&#xff0c;菜品只有12道&#xff0c;在北京只有两家分店&#xff1b;仅两个月时间&#xff0c;就实现了所在商场餐厅坪效第一名&#xff1b;绿茶单位坪效大约是100元…

linux系统分析工具续-SystemTap和火焰图(Flame Graph)

本文为网上各位大神文章的综合简单实践篇&#xff0c;参考文章较多&#xff0c;有些总结性东西&#xff0c;自认暂无法详细写出&#xff0c;建议读文中列出的参考文档&#xff0c;相信会受益颇多。下面开始吧&#xff08;本文出自 “cclo的博客” 博客&#xff0c;请务必保留此…

MySQL8.0.x 版本安装步骤傻瓜式教程【官方版】

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 MySQL8.0.x 安装 一、下载 MySQL官网下载链接&#xff1a;https://downloads.mysql.com/archives/community/ 选择版本后…

不用电的计算机(二)

Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 转载请注明出处&#xff1a;https://blog.csdn.net/morningli/p/16058594.html 上一篇讲到最早的计算机是什么样的&#xf…

CocoaPods did not set the base configuration of your project 问题解决方案

今天在使用pod install的时候&#xff0c;出现了 [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configuration…

在UnityUI中绘制线状统计图

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 先来个效果图 觉得不好看可以自己调整 1.绘制数据点 线状图一般由数据点和连线组…

HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面

错误原因为 IIS 扩展信息中午此扩展 标签&#xff1a; 今天&#xff0c;在vs2013中新建了一个placard.json文件&#xff0c;当我用jq读取它的时候&#xff0c;去提示404&#xff0c;直接在浏览器访问这个文件&#xff0c;提示&#xff1a; HTTP 错误 404.3 – Not Found 由于扩…

一行代码,让 VS Code 内置 PDF 阅读器变成深色模式

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 许多人会用 VSCode 写 LaTeX&#xff0c;等等&#xff0c;都会用到 PDF 预览。VSCo…

Selenium2Library+ride学习笔记

一、环境部署 1.安装python2.7编译环境、ride环境以及Selenium2Library环境&#xff0c;环境部署可参见前面几节。 2.启动RIDE编译环境&#xff0c;导入Selenium2Library库。     3. 执行F5,可查看Selenium2Library自带的关键字(Keyword)。 二、常用关鍵字解释 1. open b…

Android——线程通讯 Handler、Looper、Message;

线程通讯问题 &#xff08;主要用到了Handler类&#xff0c;Looper类和Message类以及MessageQueue&#xff09; 在Android中主线程如何向子线程中发送消息的问题。让我们来想想&#xff0c;这其中的过程&#xff0c;无非就是创建一个Handler对象&#xff0c;然后一个线程发消息…

Abp 实现通过手机号注册用户

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 前言 Abp 的 Identity 模块&#xff0c;实现了用户的管理&#xff0c;但是对于国…

Exchange 2010 创建设备室邮箱

其实创建设备邮箱和创建会议室邮箱都差不多&#xff0c;只是在新建邮箱的时候&#xff0c;邮箱的类型选择的不一样&#xff1b;1、打开Exchange管理控制台&#xff0c;展开“收件人配置”选择“邮箱”节点&#xff1b;在中间空白的地方右击选择“新建邮箱”&#xff1b;或者在操…

简单的Excel导出(两种方式)

最近项目里面有个周报Excel导出的功能&#xff0c;为了解决这个问题&#xff0c;我显示调研Excel内核的方式实现了&#xff0c;但是被告知该方法有诸多弊端&#xff08;1、服务器需要装相应版本的Excel&#xff1b;2、如果程序中途出错服务器会有很多Excel进程&#xff09;&…

一款开源的文件搜索神器,终于不用记 find 命令了

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 这是 HelloGitHub 推出的《讲解开源项目》系列&#xff0c;用一篇文章带你快速上…

C2审核模式(c2 audit mode)

C2审核模式&#xff08;c2 audit mode&#xff09;SQL Server C2 Audit 是为了满足美国国防部针对计算机的安全访问的安全评级要求而引入的。 SQL C2Audit 可以记录shutdown,restart,成功和失败的Login,成功或者失败访问数据库对象&#xff0c;所欲数据定义的执行&#xff0c;数…

开发者必读:2022年移动应用趋势洞察白皮书

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 华为开发者联盟与艾瑞咨询联合发布《2022年移动应用趋势洞察白皮书》&#xff0c;本…

Java 阶段面试 知识点合集 - 我们到底能走多远系列(15)

我们到底能走多远系列&#xff08;15&#xff09; 扯淡&#xff1a;这些知识点来源是通过面试涉及到的&#xff0c;面的公司不多&#xff0c;知识点涉及也不多&#xff0c;我每次面试后都在备忘录里写下有用的东西&#xff0c;集合起来分享一下&#xff0c;因为是知识点&#x…

对比学习 ——simsiam 代码解析。

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 ​ 目录 1 &#xff1a; 事先准备 。 2 &#xff1a; 代码阅读。 2.1: 数据读取…

wiki常用语法

为什么80%的码农都做不了架构师&#xff1f;>>> 说明 输入 效果 作用在任何地方 斜体字 斜体字 斜体字 粗体字 粗体字 粗体字 粗体加斜体 粗体加斜体 粗体加斜体 下划线 &#xff08;推荐替代斜体&#xff09; <u>下划线</…

【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)

注&#xff1a;本文是【ASP.NET Web API系列教程】的一部分&#xff0c;如果您是第一次看本博客文章&#xff0c;请先看前面的内容。 3.3 Calling a Web API From a WPF Application (C#) 3.3 通过WPF应用程序调用Web API(C#) 本文引自&#xff1a;http://www.asp.net/web-api/…