docker-compose部署服务

news/2024/11/16 21:52:04/

1. 安装docker-compose

  • 1.1 手动下载地址

https://github.com/docker/compose/releases

  • shell命令下载
$ sudo curl -L https://github.com/docker/compose/releases/download/2.17.12/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  • 1.2 添加执行权限
$ sudo chmod +x /usr/local/bin/docker-compose
  • 1.3 创建快捷方式
$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

2. 编写docker-compose

  • 2.1 环境文件.env
MYSQL=root:password@tcp(localhost:3306)/game?charset=utf8&parseTime=true&loc=Local
SLAVEMYSQL=root:password@tcp(localhost:3307)/game?charset=utf8&parseTime=true&loc=Local
REDIS=redis://:mima123456@redis:6379/1
version: '3'services:redis:image: redis:5.0.14restart: always# 容器内部暴露端口, 让连接容器访问expose:- 6379networks:- my-netcommand: redis-server --requirepass mima1234manager:image: manager:v1# 对外映射端口expose:- 8081# 依赖容器,其他服务启动才能启动这个depends_on:- redis# 启动多个容器,使用nginx可以自动负载均衡deploy:mode: replicated# 副本个数replicas: 3networks:- my-netenvironment:- MYSQL=${MYSQL}- SLAVEMYSQL=${SLAVEMYSQL}- REDIS=${REDIS}links:- redis# 其他compose文件的访问 ,使用external_links#external_links:# - redisnginx:image: nginx:latestports:- 18088:80networks:- my-netvolumes:- ./nginx/nginx.conf:/etc/nginx/nginx.conf- ./nginx/logs:/var/log/nginx- ./nginx/html:/usr/share/nginx/html- ./nginx/conf:/etc/nginx/conf.d
networks:my-net:driver: bridge
  • expose容器暴露端口给同服务的容器
  • ports容器暴露给主机的端口,可以直接外部访问
  • deploy 部署副本容器
  • depends_on依赖的服务,就是必须等依赖服务启动完成,本服务才会被创建
  • links 同文件下的服务链接
  • 2.2 不同docker-compose服务
version: '3'services:game:image: game:v1expose:- 11001- 11002- 9905env_file:- .envnetworks:- deploy_my-netexternal_links:- redisdepends_on:- redis# 环境变量需要等号environment:- GAMEID=1- MYSQL=${MYSQL}- REDIS=${REDIS}
networks:deploy_my-net:external: true
  • networks 标注是external是表示从外部创建的网络
  • 不同文件下的链接external_links

3. docker-compose常用命令

3.1 启动命令
-f 指定docker-compose.yml文件
可选项[service-name]单独更新指定的服务
$ docker-compose up -d [service-name]
$ docker-compose -f docker-compose.yml -f docker-compose2.yml -up -d [serivce-name]
3.2 停止服务
可选项[service-name] 停止指定的服务
$ docker-compose stop [service-name]
3.3 停止和删除容器、网络、卷、镜像
停用移除所有容器以及网络相关
$ docker-compose down
3.4 查看日志
–tail 指定查看最后行数
-f 持续查看
$ docker-compose logs --tail 100 -f service-name
3.5 在指定服务上执行一个命令
指定服务执行ping www.baidu.com命令
$ docker-compose run service-name ping www.baidu.com

http://www.ppmy.cn/news/1052859.html

相关文章

SQL注入原理

SQL、SQL注入是什么? 结构化查询语言(Structured Query Language,SQL),是一种特殊的编程语言,用于数据库的标准数据查询。1986 年10 月美国国家标准协会对SQL 进行了规范后,以此作为关系型数据库系统的标准语言。1987 …

web基础+HTTP协议+httpd详细配置

目目录录 一、Web基础1.1 HTML概述1.1.1 HTML的文件结构1.1.2 HTML中的部分基本标签 1.3 MIME1.4 URI 和 URL1.4 定义1.4.2 URI 和 URL 的区别 二、静态资源和动态资源2.1 静态资源2.2 动态资源 三、HTTP协议3.1 HTTP协议简介3.2 HTTP协议版本3.2 HTTP方法3.3 HTTP请求访问的完…

[SpringBoot3]Web服务

五、Web服务 基于浏览器的B/S结构应用十分流行。SpringBoot非常适合Web应用开发,可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。一个SpringBoot的Web应用能够自己独立运行,不依赖需要安装的Tomcat、Jetty等。SpringBoot可以…

Arduino驱动甲醛气体传感器(气体传感器篇)

目录 1、传感器特性 2、硬件原理图 3、控制器和传感器连线图 4、驱动程序 甲醛是一种有特殊刺激气味的气体,对人的眼睛和鼻子有强烈的刺激作用。若空气中甲醛浓度过高,比如新装修的房子、新买的汽车等,可引起中毒反应,严重的可致癌。 本项目可方便的确测量空气中甲醛气…

kafka-python 消费者消费不到消息

排除步骤1: 使用group_id”consumer_group_id_001“ 和 auto_offset_reset"earliest" from kafka import KafkaConsumerconsumer KafkaConsumer(bootstrap_servers["dev-kafka01.test.xxx.cloud:9092"],enable_auto_commitTrue, auto_commit…

ZigBee的Many-to-One和Source Routing

1. Many-to-One Routing Many-to-One Routing,是一种简单的路由机制,使得整个网络中的路由设备拥有回到中心节点的路由。 在这种机制下,中心节点周期性发送Many-to-One route discovery广播(协议栈默认设置为60s,可以…

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务

[oneAPI] 基于BERT预训练模型的英文文本蕴含任务 Intel DevCloud for oneAPI 和 Intel Optimization for PyTorch基于BERT预训练模型的英文文本蕴含任务语料介绍数据集构建 模型训练 结果参考资料 比赛:https://marketing.csdn.net/p/f3e44fbfe46c465f4d9d6c23e38e0…

gremlin安装使用 详细步骤

gremlin是一个图数据库查询工具,注意他只是一个工具类似于dbeaver,navicat,sqlyog,是专门来分析图数据库的一个工具。 下载 下载地址Apache Download Mirrors 省事的可以直接 wget https://www.apache.org/dyn/closer.lua/tin…