Docker-compose

一个项目可以由多个服务(容器)关联而成,Compose面向项目进行管理。
同时启动多容器环境并且解决容器之间依赖关系

一、docker-compose安装部署

GitHub_docker-compose版本
docker-compose官方指导

环境:docker已安装,epel源已经存在
Github docker-compose最新版本:2.6.11. 安装docker-compose三种途径:1) pip3安装:pip3 install docker-compose2) 二进制安装,GitHub下载对应安装包,添加执行权限mv docker-compose-linux-x86_64 /usr/bin/docker-composechmod a+x docker-compose && docker-compose version3) yum install -y doccker-compose(版本较低,默认Version: 1.18.0)

二、docker-compose命令

常用命令:down、up -d、build
1. build 构建(重新构建)项目中的服务容器
2. config 检测compose文件的错误
3. up   # 创建并启动服务
4. down # 停止和删除所有容器、网络、镜像和卷
5. images 列出项目中所包含的镜像
6. logs 查看服务容器的日志
7. kill 发送 SIGKILL 信号来强制停止服务容器
8. port 查看某个容器端口所映射的公共端口
9. ps 列出项目中目前的所有容器
10. restart 重启项目中的服务
11. rm 	# 删除所有停止状态的服务容器
12. run # 一次性运行容器,等于 docker run --rm 
13. scale 设置指定服务运行的容器个数,横向扩容docker-compose scale nginx=2  # 需要关闭yaml指定的端口映射,不然会冲突
14. stop 停止处于运行状态的容器
15. start 启动被stop的服务容器
16. top 查看各个服务容器内运行的进程
17. pause 暂停一个服务容器
18. unpause 恢复处于暂停状态中的服

命令详解可参考链接

三、docker-compose

1. docker-compose 将所管理的容器分为三层,分别是工程(project), 服务(service)以及容器(container)
2. 不支持跨主机进行容器调度的功能
3. docker只是通过server_name找到对应的容器k8s 的server_name有自己的网络及端口
4. 发现本地镜像和haproxy值不一样,通过docker-compose pull 拉取最新的镜像
查看指定端口号是否映射
[root@szx docker-compose]# docker-compose port nginx 443
0.0.0.0:443
[root@szx docker-compose]# docker-compose port nginx 80
0.0.0.0:80
参数解析
-f指定docker-compose.yml/yaml配置文件路径
config -q查看当前配置,没有错误不输出任何信息

在这里插入图片描述

四、docker-compose示例

1、nginx服务测试

1) docker-compose.yaml文档

mkdir docker-compose
cd docker-compose/[root@szx docker-compose]# vim docker-compose.yaml
version: '3'
services:nginx:image: nginx:1.22.0container_name: nginx-web1expose:- 80- 443ports:- "80:80"- "443:443"

2) 验证并启动

1. 检查配置文件是否有问题
[root@szx docker-compose]# docker-compose config -q  # 无错误不输出
2. 构建
[root@szx docker-compose]# docker-compose up -d        # 创建并启动服务,后台启动up          Create and start containers
默认寻找当前目录下的docker-compose.yaml文件

2、redis服务

[root@szx docker-compose]# vim docker-compose.yaml
services:redis:image: redis:latestcontainer_name: redis-web1expose:- 6379ports:- "6379:6379"
docker-compose up -d # 启动
docker ps # 查看启动的容器

3、haproxy–>nginx–>tomcat服务测试

在这里插入图片描述

version: '3'
services:haproxy:image: haproxy:2.6.1container_name: haproxy-web1expose:- 80- 9000ports:- "80:80"- "9000:9000"links:- nginxnginx:image: nginx_compile:v1container_name: nginx-web1expose:- 80- 443links:- tomcat01- tomcat02tomcat01:image: tomcat-web:app1container_name: tomcat-app1expose:- 8080volumes:- /data/Dockerfile/web/tomcat/tomcat01/myapp:/apps/tomcat/webapps/myapptomcat02:image: tomcat-web:app2container_name: tomcat-app2volumes:- /data/Dockerfile/web/tomcat/tomcat02/myapp:/apps/tomcat/webapps/myappexpose:- 8080

配置:

1.镜像:haproxy:2.6.1、nginx_compile:v1、tomcat-web:app1、tomcat-web:app2(由本地dockerfile文件创建的)
可以从harbor或者远程服务器直接pull下来
2.haproxy:
server web1 nginx:80 check inter 3000 fall 2 rise 5
3.nginx
vim nginx.conf   # 进行转发给tomcatupstream tomcat{server tomcat01:8080;server tomcat02:8080;}location /linux {proxy_pass http://tomcat/;}

启动报错分析

1.
[root@localcentos ~]# telnet 124.222.155.194 6379
telnet: connect to address 124.222.155.194: Connection refused解决:docker-compose.yml文件的映射端口写错了2.docker-compose up -d 报错
1(root) Additional property services_nginx is not allowed
解决:docker-compose.yaml的首部定义services字段2)Error response from daemon: Conflict. The container name "/nginx-web1" is already in use by 
container "a1a1b0580065b464ec3115fc2ff794c0f9ea01d341029a5f279feff8383a6ee5". 
You have to remove (or rename) that container to be able to reuse that name.
解决:yaml文件里面有重名服务,删了或改server名

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

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

相关文章

用宝塔面板Docker安装ChatGPT-pandora项目,直接内置token教程

本机以阿里云 轻量云服务器为例。 首先在轻量云服务器后台的防火墙放行端口3002。 然后登陆宝塔,点击Docker,提示没有安装的话,请安装Docker。 然后再点击Compose模板,写入: version: 3services:app:image: pengzhile…

一键免费部署你的私人 ChatGPT 网页应用

一键免费部署你的私人 ChatGPT 网页应用 容器部署 (推荐) Docker 版本需要在 20 及其以上,否则会提示找不到镜像。 ⚠️注意:docker 版本在大多数时间都会落后最新的版本 1 到 2 天,所以部署后会持续出现“存在更新”…

詹姆斯、乔丹谁是历史最佳?听听ChatGPT怎么说

关注、星标公众号,直达精彩内容 编译 张云锋 校对 翟永军 一千个人眼中有一千个哈姆雷特​,随着这项被认为几乎不可能被打破的记录被詹姆斯打破了,谁是goat这个话题又被推向了前所未有的高度。 我听过最好的比较,一个是最高的山&a…

GeniE 实用教程(六)分析

目 录 一、前言二、FEM Loadcase Numbers三、特征值分析四、环境荷载分析五、拉/压分析六、桩土分析七、参考文献 一、前言 SESAM (Super Element Structure Analysis Module)是由挪威船级社(DNV-GL)开发的一款有限元分析&#xf…

Hugging Face 每周速递- ChatGPT API 怎么用?我们帮你搭好页面了

每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新、社区活动、学习资源和内容更新、开源库和模型更新等,我们将其称之为「Hugging News」,本期 Hugging News 有哪些有趣的消息…

它破解了AI作画的中文语料难题,AIGC模型讲解(以世界杯足球为例)

目录 1 扩散模型与AI绘画2 中文语料的挑战3 昆仑天工:AIGC新思路3.1 主要特色3.2 模型蒸馏3.3 编解码与GPT3.4 stable-diffusion3.5 性能指标 4 体验中文AI绘画模型5 展望 1 扩散模型与AI绘画 AI绘画发展历史始于20世纪60年代,当时人工智能研究者们尝试…

WebSocket通讯实现C++/C#

目录 0 任务概述 1 不同的与服务器进行持续通讯的方式对比 2 C参考链接: 3 C#实现 服务端代码: 客户端代码: 4 代码集成 5 试验过程 1> 开启mqtt服务器 2> 启动WebSocket_Server 3> 启动WebSocket_Client 4> 服务端信息…

AjaxJson笔记,axios

wiki上ajax介绍 AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术。Ajax的概念由杰西詹姆士贾瑞特所提出[1]。 传统的Web应用允许用户端填写表单(form&a…

[每天进步一点点~] uni-app 聊天对话

只有页面&#xff0c;功能未完成&#xff0c;使用uView插件 效果图&#xff1a; 代码&#xff1a;chat.vue <template><view class"content"><view class"content-box" touchstart"touchstart" id"content-box" :clas…

DRIVR_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS 蓝屏分析

最近在写windows驱动的时候发现有一个偶发蓝屏现象&#xff0c;打了一个full dump。记录分析的流程&#xff0c;便于以后查阅。 1 由上面的图片可以见到&#xff0c;蓝屏错误码是DRIVR_UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS。查询 微软文档&#xff0c;可知该错误表…

【AI选股】如何通过python调用通达信-小达实现AI选股(量化又多了一个选股工具,原文Chrome浏览器请改为Edge浏览器)

文章目录 前言一、通达信-小达是什么&#xff1f;二、使用步骤1. 引入browser_cookie3库2. 通达信-小达 AI选股源代码 总结 前言 ChatGPT火遍网络&#xff0c;那么有没有可以不用写公式就可以实现AI选股的方法&#xff1f;答案是有&#xff0c;今天我们就来试试通达信的小达&a…

Opera One将取代 Opera 浏览器

导读Opera 日前推出了一款名为 Opera One 的新浏览器&#xff0c;该浏览器正处于开发者预览阶段&#xff0c;用户可以访问官网下载试用&#xff08;链接&#xff09;。这个浏览器的终极目标是在今年晚些时候取代其当家的 Opera 浏览器。 Opera One 遵循 "模块化设计理念&q…

ChatGPT引发新思考, 软件工程师们该如何应对?

语言模型ChatGPT最近火爆科技圈&#xff0c;仅两月时间&#xff0c;其月活跃用户数已突破1亿&#xff0c;成为史上用户增长速度最快的消费级应用程序。这款AI语言模型&#xff0c;让撰写邮件、论文、脚本&#xff0c;制定商业提案&#xff0c;创作诗歌、故事&#xff0c;甚至敲…

ChatGPT + Python = 王炸!

重磅&#xff0c;ChatGPT再次迎来里程碑式更新&#xff01; ChatGPT在上月推出了令人瞩目的插件功能&#xff0c;如果把ChatGPT看做是智能手机&#xff0c;那插件就相当于应用商店。现在的ChatGPT像一个“万能”的超级工具&#xff0c;善用它可以带来很多好处。 就与多年前移…

chatgpt赋能Python-python_aipocr

Python AIPocr&#xff1a;一款优秀的OCR识别库 Python AIPocr是一款基于Python语言的OCR识别库&#xff0c;具有许多强大的功能&#xff0c;可用于图像的字符和文本识别。在当前的人工智能应用时代&#xff0c;OCR技术的应用越来越广泛&#xff0c;Python AIPocr可以帮助开发…

大模型圆桌,ChatGPT、文心一言、讯飞星火如何看待「泛自动驾驶」

2022年11月30日&#xff0c;ChatGPT横空出世&#xff0c;掀开了人工智能认知大模型的进化爆发序幕。半年以来&#xff0c;国内外科技公司不甘落后&#xff0c;相继推出各自的认知模型&#xff0c;试图在巨大时代浪潮里分得一杯羹。 那么&#xff0c;层出不穷的大模型如何看待人…

ChatGPT:新晋CV工程师

在短短的两个星期内&#xff0c;ChatGPT 迅速成为公众聊天的焦点。超过一百万的人与OpenAI的新聊天机器人“交谈”&#xff0c;让它写诗和大学论文&#xff0c;生成创意食谱&#xff0c;创建虚拟机…它也被用来撰写新闻文章和YouTube视频的介绍。 作为计算机视觉公司的机器学习…

ChatGPT版必应发飙!怒斥人类:放尊重些

金磊 发自 凹非寺量子位 | 公众号 QbitAI 谁能想到&#xff0c;ChatGPT版必应竟能像人一样发脾气&#xff01; 事情是这样的。 前两天一个华人小哥不是“黑”了ChatGPT版必应&#xff0c;扒出它的小名叫Sydney嘛。 这可把一众网友们兴奋坏了&#xff0c;摩拳擦掌地准备去调戏它…

微软内战打响,ChatGPT对决新必应!13个灵魂拷问,新老AI各有所长

视学算法报道 编辑&#xff1a;编辑部 【导读】新必应和ChatGPT大PK&#xff0c;谁更厉害&#xff1f;记者亲测&#xff0c;新必应似乎比ChatGPT表现更好。 根据微软的说法&#xff0c;「新必应」搜索引擎是由「比ChatGPT更强大」的OpenAI技术驱动的。 因此&#xff0c;新必应…

ChatGPT与DataFocus:革新企业决策分析的数据分析工具

ChatGPT和Datafocus是目前市场上非常火热的两个数据分析工具&#xff0c;那么这两者之间有何联系呢&#xff1f;本文将着重探究ChatGDP和Datafocus搜索式BI这两个工具的联系及合作。 一、引言 随着大数据时代的到来&#xff0c;对于大数据的处理和分析变得越来越重要。为了更…