【Docker】Docker-compose容器编排的使用

2023-11-18

怒目的在CentOS系统中部署安装Docker-compose容器编排服务、使用Docker-compose服务构建Python Web镜像和容器。

1. 安装Docker-compose

(1)通过实训平台进入到操作系统界面,在#后输入yum -y install epel-release -y命令,然后按Enter键,安装epel-release源。示例代码如下:

[root@xxx ~]# yum install epel-release -y

在这里插入图片描述

(2)安装python-pip工具,在#后输入yum -y install python-pip -y命令,然后按Enter键,安装python-pip工具。示例代码如下:

[root@xxx~]# yum -y install python-pip -y

在这里插入图片描述

(3)使用pip工具安装doacker-compose,在#后输入sudo pip install -U docker-compose命令,然后按Enter建,安装docker-compose服务。示例代码如下所示:

[root@xxx~]#sudo pip install -U docker-compose

在这里插入图片描述

(4) 验证docker-compose服务是否可用,在#后输入sudo docker-compose --version命令,然后按Enter键,查看版本。示例代码如下:

[root@xxx~]# sudo docker-compose --version

在这里插入图片描述

2. 应用Compose的案例

(1)编写一个Python Web案例,应用Compose编排服务。例子包含2个容器,一个Python Web容器,一个是Redis数据库容器。

首先构建Python Web镜像和容器:在#后输入mkdir composeapp命令,然后按Enter键,创建composeapp目录,输入ll命令,查看所创建的目录。示例代码如下:

[root@xxx~]# mkdir composeapp

[root@xxx~]# ll

在这里插入图片描述

(2)在#后输入cd composeapp/命令,然后按Enter键,进入到该目录下,然后输入vi app.py,创建app.py文件,示例代码如下所示:

[root@xxx~]# cd composeapp/

[root@xxx composeapp]# vi app.py

编辑app.py文件,然后按i键,添加以下内容:

from flask import Flask
from redis import Redis
import os
app = Flask(__name__)
redis = Redis(host="redis", port=6379)
@app.route('/')
def hello():
    redis.incr('hits')
    return 'Hello Docker Book reader! I have been seen {0} times'.format(redis.get('hits'))
if __name__ == "__main__":
    app.run(host="0.0.0.0", debug=True)

编辑结束后,按ESC键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。

(3)在#后输入vi requirements.txt命令,然后按Enter键,创建Python的依赖包描述文件。示例代码如下:

[root@xxxcomposeapp]# vi requirements.txt

编辑requirements.txt文件,然后按i键,添加以下内容:

flask
redis

编辑结束后,按ESC键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。

(4)在#后输入vi Dockerfile命令,然后按Enter键,创建Dockerfile文件,示例代码如下:

[root@xxxcomposeapp]# vi Dockerfile

编辑Dockerfile文件,然后按i键,添加以下内容:

FROM python:2.7

MAINTAINER James Turnbull < james@example.com >

ENV REFRESHED_AT 2016-08-01

ADD . /composeapp

WORKDIR /composeapp

RUN pip install -r requirements.txt

编辑结束后,按ESC键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。

(5)在#后输入docker build -t jamtur01/composeapp .命令,然后按Enter键,构建镜像,示例代码如下:

[root@xxxcomposeapp]# docker build -t jamtur01/composeapp .

运行结果截图,如图6所示:
在这里插入图片描述

(6) 在#后输入docker pull redis命令,然后按Enter键,拉取redis镜像,示例代码如下:

[root@xxx composeapp]# docker pull redis

运行结果截图,如图7所示:
在这里插入图片描述

拉取镜像完毕后,运行该镜像,实例代码如下:

[root@xxxcomposeapp]# docker run -d -p 6379:6379 --name redis redis

运行结果截图,如图8所示:
在这里插入图片描述

(7)在#后输入sudo docker run -d -p 5000:5000 -v /root/composeapp:/composeapp --link redis:redis jamtur01/composeapp python app.py命令,然后按Enter键,运行镜像,示例代码如下:

[root@xxx composeapp]# sudo docker run -d -p 5000:5000 -v /root/composeapp:/composeapp --link redis:redis jamtur01/composeapp python app.py

注:若端口号被占用,请使用新端口号。

运行结果截图,如图9所示:
在这里插入图片描述

运行成功后,在#后输入curl 10.24.2.29:5000(ip为你当前虚拟机的ip,可以使用ip a命令查询ip地址),然后按Enter键,示例代码如下:

[root@xxx composeapp]# curl 10.24.2.29:5000

运行结果截图,如图10所示:
在这里插入图片描述

(8)在#后输入vi docker-compose.yml命令,然后按Enter键,创建docker-compose.yml文件,示例代码如下:

[root@xxx composeapp]# vi docker-compose.yml

编辑docker-compose.yml文件,然后按i键,添加以下内容:

web:
  image: jamtur01/composeapp
  command: python app.py
  ports:
   - "5001:5000"
  volumes:
   - .:/composeapp
  links:
   - redis
redis:
  image: redis

编辑结束后,按ESC键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。

在#后输入docker-compose up &命令,然后按Enter键,以compose方式运行(加&的意思是后台运行),示例代码如下:

[root@xxx composeapp]# docker-compose up &

运行结果截图,如图11所示:
在这里插入图片描述

看到如上返回,则视为成功。

(9)在执行完docker-compose up &后,按Enter键,回到命令行模式,如图12所示:
在这里插入图片描述

在#后面输入curl 10.24.2.29:5001(ip为你当前虚拟机的ip,可以使用ip a命令查询ip地址),然后按Enter键,查看页面信息,示例代码如下:

[root@xxx composeapp]# curl 10.24.2.29:5001

运行结果截图,如图13所示:
在这里插入图片描述
由上图返回结果可以看出,单独启动容器和使用compose服务启动容器的效果一致。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Docker】Docker-compose容器编排的使用 的相关文章

  • 使用ECS和mysql搭建mysql服务器

    一 首先得在阿里云等云主机上申请两台主机 二 现在连上去安装mysql 1 通过安装源将mysql下载下来 root iz2ze2llim71y07x3numlbz wget https dev mysql com get mysql57
  • 游戏笔记本电脑可以进行 3D 建模和渲染吗?有哪些优势与缺点?

    3D 建模和渲染是创建令人惊叹的数字艺术 动画和游戏体验的最流行和最广泛使用的工具之一 随着技术的进步 对运行这些模型的强大计算机的需求呈指数级增长 对于那些寻求强大机器来处理 3D 建模任务的人来说 游戏笔记本电脑已成为一个可行的选择 游
  • 快速玩转 Llama2!机器学习 PAI 最佳实践(二)—全参数微调训练

    前言 近期 Meta 宣布大语言模型 Llama2 开源 包含7B 13B 70B不同尺寸 分别对应70亿 130亿 700亿参数量 并在每个规格下都有专门适配对话场景的优化模型Llama 2 Chat Llama2 可免费用于研究场景和商
  • 企业网站建设方案书

    一 网站建设目标 1 1背景分析 现在网络的发展已呈现商业化 全民化 全球化的趋势 目前 几乎世界上所有的公司都在利用网络传递商业信息 进行商业活动 从宣传企业 发布广告 招聘雇员 传递商业文件乃至拓展市场 网上销售等 无所不能 如今网络已
  • 巴比特

    摘要 9 月 13 日 阿里云宣布通义千问大模型已首批通过备案 并正式向公众开放 百度发布文心一言插件生态平台 灵境矩阵 向广大开发者开启邀测 并提供百亿流量 亿元基金等激励措施 扶持插件生态建设 图片来源 由无界AI生成 热点资讯 百度发
  • 从零开始:在腾讯云轻量服务器上安装Docker,实现快速开发和部署!

    本文指导您如何在 零基础轻量应用服务器上安装 Docker 以及使用 Docker 镜像源加速镜像下载 好了 没有废话 让我们开始行动吧 第一步 购买服务器 小编买的是 腾讯的 1年446RMB 下载链接如下 学生云服务器 学生云主机 学生
  • 云函数部署之网易云

    云函数部署之网易云 云函数 什么是云函数 就是可以让你没有服务器 本地电脑不用下载Python也可以使用这个项目 而且还是白嫖 既解决了很多人部署的麻烦 也给了那些被劝退的朋友回来的勇气 十分钟便可以全部弄完 1 进入云函数 这里拿腾讯云的
  • DAMA-DMBOK2重点知识整理CDGA/CDGP——第2章 数据处理伦理

    目录 一 分值分布 二 重点知识梳理 1 语境关系图 2 引言 3 业务驱动因素 4 基本概念 一 分值分布 CDGA 2分 2单选 CDGP 0分 不考 二 重点知识梳理 1 引言 预警关系图 数据处理伦理定义 如何以符合道德准则及社会责
  • 华为云,站在数字化背后

    一场新的中国数字化战斗 正在被缓缓拉开帷幕 作者 裴一多 出品 产业家 如果说最近的讨论热点是什么 那无疑是互联网云 在数字化进入纵深的当下 一种市面上的观点是互联网的云业务由于盈利等问题 正在成为 被抛弃 的一方 互联网公司开始重新回归T
  • 线上阿里云短信盗刷问题实录

    背景 营销系统中有定时任务处理将待支付订单变更为已取消 执行时间五分钟一次 业务执行处理异常会发送短信给相关开发人员进行短信提醒 从下午一点二十五开始 开发人员间隔五分钟就会收到业务执行异常的短信提醒 最初因为测试或是正式环境中确实有异常的
  • 【腾讯云云上实验室】个人对腾讯云向量数据库的体验心得

    目录 前言 Tencent Cloud VectorDB概念 使用初体验 腾讯云向量数据库的优势 应用场景有哪些 未来展望 番外篇 腾讯云向量数据库的设计核心 结语 前言 还是那句话 不用多说想必大家都能猜到 现在技术圈最火的是什么 非人工
  • 【玩转 EdgeOne】| 腾讯云下一代边缘加速CDN EdgeOne 是安全加速界的未来吗?

    目录 前言 边缘加速与安全加固 边缘计算与CDN的融合 EdgeOne优秀的安全特性 EdgeOne卓越的性能表现 灵活的配置和管理 生态系统的支持与发展 技术创新与未来展望 EdgeOne试用 结束语 前言 在当下互联网的迅猛发展的时刻
  • 干货下载丨不分业态、不关注核心需求,怎么做得好项目管理?!

    项目管理 装备制造业的破局利刃 对于装备制造行业而言 每一笔订单都是 非标定制 小批量制造 这种特性决定了其行业企业普遍存在 新品开发周期长 生产效率低 质量不稳定 交货期不稳定 成本预算难控制 非标品报价慢 等问题 如何提升企业的管理水平
  • AWS-WAF-CDN基于速率rate的永久黑名单方案(基于lambda实现)

    参考方案 有坑 所以产生了这篇博客 点击跳转 1 部署waf 有则跳过 必须存在一个rate速率规则 后面的方案堆栈要用 新建rate速率规则 关联cdn资源 2 部署堆栈 美国东部 弗吉尼亚北部 us east 1 1 堆栈文件获取方式
  • CloudPulse:一款针对AWS云环境的SSL证书搜索与分析引擎

    关于CloudPulse CloudPulse是一款针对AWS云环境的SSL证书搜索与分析引擎 广大研究人员可以使用该工具简化并增强针对SSL证书数据的检索和分析过程 在网络侦查阶段 我们往往需要收集与目标相关的信息 并为目标创建一个专用文
  • 阿里云服务器地域怎么选择?哪个地域好?

    阿里云服务器地域和可用区怎么选择 地域是指云服务器所在物理数据中心的位置 地域选择就近选择 访客距离地域所在城市越近网络延迟越低 速度就越快 可用区是指同一个地域下 网络和电力相互独立的区域 可用区之间可以做到故障隔离 将应用部署到不同可用
  • 实实在在万事达!实在智能助力山东万事达集团加速数智化转型

    近日 杭州实在智能科技有限公司 以下简称 实在智能 与山东建筑钢市场 领头羊 山东万事达控股有限公司 以下简称 万事达集团 召开 RPA 机器人流程自动化 项目启动会 实在智能携手万事达集团 联合共建财务RPA一体化研发管理项目 以下简称
  • 天翼运行高校云盘在线扩容

    天翼云文档地址 https www ctyun cn document 10027696 10169558 1 输入 growpart命令 检查此云主机是否已安装growpart扩容工具 若出现图中回显信息 则说明已经安装 无需手动安装 注
  • 阿里云服务器地域怎么选择?哪个地域好?

    阿里云服务器地域和可用区怎么选择 地域是指云服务器所在物理数据中心的位置 地域选择就近选择 访客距离地域所在城市越近网络延迟越低 速度就越快 可用区是指同一个地域下 网络和电力相互独立的区域 可用区之间可以做到故障隔离 将应用部署到不同可用
  • 阿里云2核4G服务器优惠价格30元3个月?小心坑

    2024年阿里云2核4G服务器优惠价格30元3个月 活动 https t aliyun com U bLynLC 配置为云服务器ECS经济型e实例ecs e c1m2 large 3M固定带宽 系统盘为40GB ESSD Entry 活动打

随机推荐

  • 基于51单片机的智能晾衣架的设计与实现(源码+论文)_kaic

    摘要 随着社会和市场的变化 我国经济的快速发展和房地产行业的快速扩张 使得装修家居行业飞速发展 在行业高速发展的同时 消费者家居智能化要求也在日益发展 随着科学技术的进步和电子技术的发展 单片机作为智能控制芯片 越来越多的应用到生活中的个各
  • Verilog实例-AMBA(AHB)协议

    目录 一 简介 1 1 AHB 1 2 signal list 1 3 Bus interconnection 总线互联 1 4 Overview of AMBA AHB operation 1 4 1 Basic transfer 1 4
  • ElasticSearch6.x 基于SpringBoot 实现ElasticSearch的统计查询

    AggregationUtil java 实现elasticsearch 搜索引擎针对指定索引的max 最大值 min 最小值 sum 合计统计 avg 平均值统计 stats 基本统计 extendedStats 高级统计 cardina
  • 常见的笔试题之mysql

    MYSQL篇 mysql版本 5 7 安装文件 mysql installer community 5 7 11 0 msi 1 写出复制表的sql语句 例如employ为原表名 copytb为目标表名 语句如下 1 create tabl
  • ajax定时器怎么写,js定时器怎么写?就是在特定时间执行某段程序

    js定时器怎么写 就是在特定时间执行某段程序 复制代码 代码如下 function var handler function var timer setInterval handler 1000 var clear function cle
  • golang运算与循环等

    一 golang运算符 1 算术运算符 相加 相减 相乘 相除 求余 自增 自减 2 关系运算符 等于 不等于 gt 大于 lt 小于 gt 大于等于 lt 小于等于 3 位运算符 按位与运算符 是双目运算符 其功能是参与运算的两数各对应的
  • tkinter实现页面切换

    tkinter是python标准库的GUI组件 对于一些小脚本 完全够用 但是如果是复杂的逻辑界面 当然是啊pyqt更胜一筹 笔者用过wxpython pysimplegui 代码写完了 在打包的时候都会遇到各种各样的问题 而用tkinte
  • chatgpt赋能python:Python如何获取微信聊天记录:详细教程

    Python如何获取微信聊天记录 详细教程 在当前的数字时代 如何快速 便捷地获取信息是困扰每个人的问题 随着移动互联网的发展 微信成为了人们交流沟通的主要工具之一 在这样的背景下 如何获取微信聊天记录成为了一项非常重要的技能 在某些场合中
  • java与jsp的关系_浅谈servlet与jsp的关系

    servlet是用java语言编写的 是一个java类 主要功能是用来接受 处理客户端的请求 并把处理结果返回到客户端显示 Jsp是servlet发展后期的产物 在没有jsp之前 servlet利用输出流动态生成整个HTML页面 输出内容包
  • 数字人解决方案——实时对话数字人源码与环境配置

    前言 1 从技术角度来看 现在的数字人就是一个缝合怪 把各种技术点都整合在一起 用来实现直播 对话等数字人 技术流程大概如下图 其实最重要的一环应该属于LLM 大型语言模型 LLM相当于一个人的意识 如果没有LLM 这一套完全没有深度 2
  • 锁介绍名词解释&&Lock && synchronized

    各种锁名词解释及应用 一 名词解释 1 乐观锁 VS 悲观锁 2 自旋锁 VS 适应性自旋锁 3 无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁 4 公平锁 VS 非公平锁 5 可重入锁 VS 非可重入锁 6 独享锁 VS 共享锁 二
  • QT学习经验之父子通信

    QT父子通信两种方式 第一种获取父部件 MainWindow par MainWindow parentWidget 第二种利用信号和槽 父发射带参数的信号给子 父部件中 定义 发射信号 子部件中 定义槽 连接信号和槽 connect pa
  • CTF-----RE练习题(二)

    学习打卡篇八 每天学习一点点 认识壳 在一些计算机软件里有一段专门负责保护软件不被非法修改或反编译的程序 它们一般都是先于程序运行 拿到控制权 然后完成它们保护软件的任务 由于这段程序和自然界的壳在功能上有很多相同的地方 所以就把这样的程序
  • 解决 Column count doesn‘t match value count at row 1 的可能思路

    今天遇到这个问题 Column count doesn t match value count at row 1 很明显说的是列不匹配 示例是 insert into user colum1 colum2 colum3 但是values是
  • 错题集 zabbix--yaml

    报错环境 一 ansible yaml root server1 vim Apcha yaml hosts mysql remote user root tasks name yum httpd yum name httpd name st
  • .NET 8发布首个RC,比.NET 7的超级快更快

    NET 8 发布了首个 RC 据称 RC 阶段会发布两个版本 正式版将于 2023 年 11 月 14 日至 16 日在 NET Conf 2023 上推出 NET 8 是长期支持 LTS 版本 将会获得 3 年技术支持 公告写道 此版本为
  • win服务器开虚拟空间,win虚拟空间如何实现301重定向

    对于个人站长来说 window服务器的国内虚拟空间并不陌生 它不像apache那样可以支持 强大的 htaccess文件 对于站长来说 301重定向更不陌生 基本的将不带www的域名301指向带www的域名 如何实现这步 网上一大堆资料没几
  • 网络地址和广播地址

    1 总述 IP地址使用32位二进数表示 每一个主机或路由器的接口都有全局唯一的IP地址 NAT是个例外 它由网络号 NetID 和主机号 HostID 组成 它可以分为五类 如下 2 地址划分 1 A类地址 其中A类地址的前8位是网络号 后
  • 【超级无敌详细的韩顺平java笔记】从入门到精通---四种进制介绍

    1 进制介绍 对于整数 有四种表示方式 二进制 0 1 满 2 进 1 以 0b 或 0B 开头 十进制 0 9 满 10 进 1 八进制 0 7 满 8 进 1 以数字 0 开头表示 十六进制 0 9 及 A 10 F 15 满 16 进
  • 【Docker】Docker-compose容器编排的使用

    怒目的在CentOS系统中部署安装Docker compose容器编排服务 使用Docker compose服务构建Python Web镜像和容器 1 安装Docker compose 1 通过实训平台进入到操作系统界面 在 后输入yum