Docker Compose快速入门

〖Docker指南⑦〗docker-compose快速入门 docker-compose是docker官方提供的容器编排工具,只支持单机多容器部署,通过yml文件配置你自己的服务,然后通过一个命令,你能使用配置文件创建和运行所有的服务,重点可以启动多个容器!!! ...... 阅读详情

Docker Compose

简介

在前面学习的docker我们操作的都是单个容器,Dockerfile build 手动操作。
在微服务情况下,100个微服务!如果使用一个 一个的手动操作也是非常麻烦的。
因此 Docker Compose 来轻松高效的管理容器,定义运行多个容器!

官网介绍

Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。借助 Compose,您可以使用 YAML 文件来配置应用程序的服务。然后,使用单个命令,从配置中创建并启动所有服务。要了解有关 Compose 的所有功能的更多信息,请参阅功能列表。
Compose 适用于所有环境:生产、登台、开发、测试以及 CI 工作流。您可以在Common Use Cases 中了解有关每个案例的更多信息。
使用 Compose 基本上是一个三步过程:

  1. 使用 定义您的应用程序的环境,Dockerfile以便它可以在任何地方复制。
  2. 定义组成您的应用程序的服务,docker-compose.yml 以便它们可以在隔离的环境中一起运行。
  3. 运行docker compose up和 Docker compose command 命令启动并运行你的整个应用程序。您也可以docker-compose up使用docker-compose 二进制文件运行。

Docker Compose 的理解
Docker Compose 就是把多个容器编排到一个文件中。

Docker Compose 安装

Linux 环境下

## 1. 运行此命令以下载 Docker Compose 的当前稳定版本:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
##  你可以也通过执行下面的命令,高速安装Docker Compose。
sudo curl -L https://get.daocloud.io/docker/compose/releases/download/1.29.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

## 2. 对二进制文件应用可执行权限:
sudo chmod +x /usr/local/bin/docker-compose

##测试安装。
$ docker-compose --version
docker-compose version 1.29.2, build 1110ad01啊

Docker Compose 常用命令和配置

  • ps:列出所有compose运行 容器
docker-compose ps
  • logs:查看服务日志输出
docker-compose ps
  • port:打印绑定的公共端口
docker-compose port eureka 8761
  • build:构建或者重新构建服务
docker-compose build
  • start;启动指定服务已存在的容器
docker-compose start	xiaomingapp
  • stop:停止已运行的服务的容器
docker-compose stop redis
  • rm:删除知道服务的容器
docker-compose rm redis
  • up:构建、启动容器
docker-compose up
  • kill:停止知道服务的容器
  • run:在一个服务上执行一个命令
docker-compose run web bash
  • pull:下载服务镜像
  • scale:设置知道服务运行容器的个数,以service=num形式指定
docker-compose scale user=3 movie=3

docker-compos.yaml 属性

docker-compose.yaml 核心

具体每个参数参考官方文档

官方文档:https://docs.docker.com/compose/compose-file/compose-file-v3/

## 主要是分为 3层. 版本--》服务--〉其他配置/
version: ""		## 版本
services:		## 服务
	服务1:  		## web
		build:
		...
		image:
		networks:
		volumes
		...
		
	服务2:		## redis
		...
## 其他配置 网络/卷,全局规则
volumes:
network:
configs:

案例

version: "3.9" ## 版本
services:		## 服务
  web:
    build: .
    depends_on:	  ##依赖。先执行 db redis
      - db
      - redis
  redis:
    image: redis
  db:
    image: postgres

学习,需要掌握规律!

使用docker-compose 网络

使用docker-compose 编排容器,会创建一个默认定义一个网络,所有容器都是使用该网络,而且容器之间是可以连通的。

xiaoming[root@cn-mbp-c02v221ahv2f java]# docker network list
NETWORK ID     NAME           DRIVER    SCOPE
25463fc507cb   bridge         bridge    local
77b421abcbd9   host           host      local
e5f240fc6078   java_default   bridge    local
b7ade70af5bc   mynet          bridge    local
c2509facb374   none           null      local
3f39b14d72a7   redis          bridge    local

使用docker-compose 打包部署jar

编写测试java web 应用 只使用redis 做测试

@RestController
public class HelloController {

    @Autowired
    private RedisTemplate redisTemplate;

    @RequestMapping("hello/{name}")
    public String hello(@PathVariable("name") String name){
        redisTemplate.opsForValue().set("name",name);
        return (String) redisTemplate.opsForValue().get("name");
    }

这里我们使用 redis服务名称进行网络连通

server.port=8080
spring.redis.host=redis
[root@cn-mbp-c02v221ahv2f java]# vi docker-compose.yml 
version: '3.3'
services:
  xiaomingapp:
    image: xiaomingapp
    build: .
    ports:
    - 8080:8080
    depends_on:
      - redis
  redis:
    image: "redis:alpine"
[root@cn-mbp-c02v221ahv2f java]# vi Dockerfile 
FROM java:8
COPY *.jar /app.jar
CMD ["--server.port=8080"]
EXPOSE 8080

[root@cn-mbp-c02v221ahv2f java]# ll
total 26424
-rw-r--r--. 1 root root      168 Aug  3 01:49 docker-compose.yml
-rw-r--r--. 1 root root      108 Aug  3 01:48 Dockerfile
-rw-r--r--. 1 root root 27049938 Aug  3 01:48 hello-0.0.1-SNAPSHOT.jar

使用 docker-compose up --build 进行构建

[root@cn-mbp-c02v221ahv2f java]# docker-compose up  --build 
[root@cn-mbp-c02v221ahv2f java]# docker ps
CONTAINER ID   IMAGE          COMMAND                  CREATED       STATUS       PORTS                                       NAMES
f697833af140   xiaomingapp    "java -jar /app.jar …"   4 hours ago   Up 4 hours   0.0.0.0:8080->8080/tcp, :::8080->8080/tcp   java_xiaomingapp_1
b1f576accdd1   redis:alpine   "docker-entrypoint.s…"   4 hours ago   Up 4 hours   6379/tcp                                    java_redis_1


测试 成功

[root@cn-mbp-c02v221ahv2f java]# curl localhost:8080/hello/xiaoming
xiaoming
展锐 Android 15 无听筒方案删除配置 【代码】展锐 Android 15 无听筒方案删除配置。 阅读详情

相关推荐

Palabos User Guide中文解读 | 第五章 | Palabos编程 (跳过了第四章Palabos-Java接口)

作者的话:本人在学习palabos时,发现国内中文资料甚少,恰好网上可以直接搜到palabos user guide这种英文资料,加之时间充裕,便打算开始翻译,翻了一节后发现这可能算侵权,就比较伤脑筋,突然想到自己写中文解读即可,便有了下面的博客。 Palabos User Guide Release 1.0 r1 Copyright © 2019 University of Geneva Jul...

Yulan Fang's notes. 2298

docker-compose教程(安装,使用, 快速入门)

Docker Compose是一个用来定义和运行多个复杂应用的Docker编排工具。例如,一个使用Docker容器的微服务项目,通常由多个容器应用组成。那么部署时如何快速启动各个微服务呢,一个个手动启动?假如有上百个微服务呢,显然不现实,那么使用Docker Compose编排工具便可快速启动容器。

初夏0811的博客 13万+

ubuntu打实时内核补丁教程以及安装后显卡驱动问题解决方法

在ubuntu20.04上安装成功,亲测有效 目录ubuntu打实时内核补丁教程1、下载实时内核2、解压和打补丁(patch)3、安装依赖和编译安装4、修改一些文件,便于之后切换内核5、重启电脑实时内核版本下安装nvidia显卡驱动的问题1、先切换回之前的内核(非实时)版本2、重装之前内核(非实时)版本下的显卡驱动3、切换回实时内核(按照上面的步骤)4、在实时内核下安装显卡驱动 ubuntu打实时内核补丁教程 安装目标系统:ubuntu20.04 电脑配置:i9,2080ti 1、下载实时内核 打开终端,输

weixin_39275295的博客 7995

Docker-compose入门

docker-compose项目是docker官方的开源项目,

Guo_youyou的博客 769

FPGA新手避坑指南:Vivado 2020.2里配置PLL IP核,从差分时钟输入到上板实测的全流程

本文详细介绍了在Vivado 2020.2中配置PLL IP核的全流程,包括差分时钟输入、参数设置、仿真验证及上板实测。针对FPGA新手常见的配置错误和硬件连接问题,提供了实用的解决方案和调试技巧,帮助开发者快速掌握时钟管理技术。

weixin_27051161的博客 486

SQLite学习——Dapper初识

dapper下载:https://www.nuget.org/packages/Dapper/1.40.0

jiDxiaohuo的博客 1296

Docker Compose详细教程(从入门到放弃)

Docker Compose 是一个需要在 Docker 主机上进行安装的 Docker 容器编排外部工具。其并不是通过脚本或各种冗长的 Docker 命令来将应用组件组织起来,而是通过一个声明式的配置文件描述整个应用,然后通过一条命令完成应用部署。部署成功后,还可通过一系列简单命令实现对其完整生命周期的管理。Docker Compose 的前身是 Fig(无花果)。Docker Compose 使用 YAML 文件来定义服务。

tigerhhzz的博客 1812

利用featureCounts实现高效转录本定量:从比对到下游分析

本文详细介绍了利用featureCounts工具进行RNA-seq转录本定量的完整流程。从软件安装、输入文件准备,到核心命令参数解析与批量样本处理,再到将生成的计数矩阵无缝衔接至DESeq2进行差异表达分析,提供了从比对到下游分析的一站式实战指南。文章重点阐述了featureCounts在效率与易用性上的优势,并分享了常见问题排查与性能优化技巧,帮助研究者高效完成转录本定量这一关键步骤。

weixin_29069131的博客 317

Docker Compose介绍及使用入门

打包镜像;部署启动容器docker run;在真实的企业级应用中,一个服务往往需要和很多个其它的服务进行关联,单个服务也有可能有多个容器实例,如果需要发布,很可能会需要人员手动对每一个容器进行打包和启动的操作,非常繁琐,容易出错。在这种背景下,Docker Compose就有了用武之地。简单来说,Docker Compose是一个用于定义和运行多个容器的工具,通过来实现对容器集群的编排工作。

2301_77338527的博客 767

光学相干断层扫描(OCT)在 妇科诊断 中的革命性应用

尽管OCT在妇科的应用提供了许多潜在的优势,但它仍然是一个相对新的技术,并不是所有医疗机构都有能力提供这种类型的成像服务。随着技术的发展和医生对OCT的熟悉程度的提高,预计OCT将在妇科和其他医学领域中扮演越来越重要的角色。早期发现和准确的分类是提高治疗成功率的关键。虽然这是一个相对较新的应用领域,但OCT的非侵入性和高分辨率成像能力可能提供有价值的信息,以提高辅助生殖技术的成功率。:光学相干断层扫描(OCT)在阴道和外阴组织的评估中的应用正在逐渐展开,提供了一种新的方法来诊断和监测各种妇科疾病。

LiRongLu_的博客 1720

【Flink】FlinkCDC获取mysql数据时间类型差8小时时区解决方案

​ 1、背景: 在我们使用FlinkCDC采集mysql数据的时候,日期类型是我们很常见的类型,但是FlinkCDC读取出来会和数据库的日期时间不一致,情况如下 FlinkCDC获取的数据中create_time字段1694597238000转换为时间戳2023-09-13 17:27:18,而数据库中原始数据如下,并没有到下午5点,这就导致了FlinkCDC读出来的时间和数据库中实际的时间不一致的情况,与数据库对比可以发现,这里的时间戳与数据库时间刚好相差了 8 个小时,在实际生产中这种情况是不

一杯咖啡半杯糖的博客 3854

小笨蛋,不许你不懂 docker-compose,万字长文教你入门到精通

首先,我们需要更正一点:Linux 系统通常被称为 x86(32位系统)或 x86_64(64位系统)。下面的说明将基于 x86_64(64位)Linux 系统进行。要在 Linux 上安装并使用 Docker Compose,首先确保你已经安装了 Docker。如果你还没有安装 Docker,请访问 Docker 官方文档(https://docs.docker.com/engine/install/)以获取针对你的 Linux 发行版的安装指南。运行以下命令以下载 Docker Compose 的最新版

ningyipro的博客 2916

【调优】OpenClaw调优之模型(tokens)篇

OpenClaw用户常遇四大痛点:规则被无视、API账单暴涨、低效模型选择、记忆丢失。通过/context list命令可解析上下文组成,包括工作区配置、引导参数限制、系统提示词等关键信息。重点需关注Token消耗来源,如核心配置文件、技能工具说明等,避免静默截断。建议精简非必要内容,优化记忆机制,平衡功能与成本。该分析帮助用户减少无效操作,合理控制API支出。

海兰 990

Docker快速入门——Docker-Compose

Docker快速入门——Docker-Compose 一、Docker-Compose简介 1、Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Comp...

bjzhaoxiao的专栏 265

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Docker快速入门-第12章 Docker Compose

"Docker Compose 项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。"

andyyah晓波的博客 495

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Docker Compose 快速入门教程(看完解决大部分疑惑问题)

如果入门的话还是非常的简单的,但是如果要讲细节还需要去官网看详细。services属性下的每一个一级属性直接就是每一个服务。然后这个属性名就是服务的id。对于每个服务,我们又可以对其进行详细配置,就像用docker命令的参数一样对服务容器进行配置。然后下面我们将挑一些比较重要的属性讲一讲。讲解的顺序按照属性的字典序。

weixin_73227648的博客 2187

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

如何在Ubuntu 20.04上安装Docker Compose [快速入门]

介绍 (Introduction) In this quickstart guide, we’ll install Docker Compose on an Ubuntu 20.04 server. 在此快速入门指南中,我们将在Ubuntu 20.04服务器上安装Docker Compose 。 For a more detailed version of this tutorial, ...

1315

Docker Compose 快速入门

上一篇 博客讲述了docker环境搭建以及docker的初步使用,本文将介绍docker compose快速入门,我也是现学现写,写的不好的地方请大家多多指正。下面还是从环境搭建开始讲起(上一篇博客已有的环境基础上): 1. 安装compose 通过以下命令自动下载并安装: curl -L https://github.com/docker/compose/releases/download/...

oyc619491800的博客 462

docker-compose快速入门及实战

在此之前部署服务都是使用Docker命令来进行的,越到后面执行的Docker命令就会十分复杂且容易出错,而且对于部署多个容器时需要一条一条docker命令去执行,实在是累啊,还有就是一些实战案例以及项目中都是提供了docker compose服务运行命令模板,基于这几个原因,就去现学了下Docker Compose。博客目录索引(持续更新)

每个人都是独一无二的,把握好自己的节奏,跟着自己的心走。 2174

docker基础快速入门:基础命令、网络、docker compose工具

快速熟悉docker基本命令、docker网络、docker compose工具

alterhz的博客 1351

Docker-Compose快速入门及实践

docker-compose基础入门实践

qq_54561430的博客 1513

Docker快速入门之docker-compose

一,Docker-compose简介   1,Docker-compose简介   Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当

linuxguitu的博客 1797
上一篇: Docker入门到实践(下)
下一篇: Jenkins持续集成入门到精通(一)
小明 go
博客等级 码龄8年 6粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值