构建部署_docker-compose常用命令

构建部署_docker-compose常用命令

    • 前言
    • 简介
    • docker-compose 常用命令
    • docker-compose安装
    • 编写配置文件docker-compose.yml文件
    • 生成镜像容器

前言

使用一个Dockerfile模板文件可以定义一个单独的应用容器,如果需要定义多个容器就需要服务编排。下面介绍Docker官方产品,docker-compose
Dockerfile可以让用户管理一个单独的应用容器,而docker-compose则允许用户在一个模板(yaml格式)中定义一组相关联的应用容器(被称为一个project,即项目)
例如一个web服务再加上后端的数据库服务容器等。

简介

  • docker-compost基础概念
    docker-compose项目是docker官方的开源项目, 负责实现对docker容器集群的快速编排。
    docker-compose将所管理的容器分为三层, 分别是工程(project),服务(service)以及容器(containner)
    docker-compose运行目录下的所有文件(docker-compose.yml文件、extends文件或环境变量等)组成一个工程,如无特殊指定,工程名即为当前目录名。
    一个工程当中,可以包含多个服务,每个服务中定义了容器运行的镜像、参数、依赖。
    一个服务中可以包括多个容器实例,docker-compose并没有解决负载均衡的问题。因此需要借助其他工具实现服务发现及负载均衡,比如consul。
    docker-compose的工程配置文件默认为docker-compose.yml。可以通过环境变量COMPOSE_FILE -f 参数自定义配置文件,其自定义多个有依赖关系的服务及每个人服务运行的容器。
  • 为什么要使用docker-compose
    使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况,例如要实现一个web项目,除了web服务容器本身,往往还需要再加上后端的数据库服务容器,甚至还包括负载均衡容器等。
    compose允许用户通过一个单独docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器为一个项目(project)
    docker-compose项目由pypthon编写,调用docker服务提供的API来对容器进行管理,因此, 只要所操作的平台支持docker-API,就可以在其上利用conpose来进行编排管理。
    简单来说:就是来管理多个容器的,定义启动顺序的,合理编排,方便管理。

docker-compose 常用命令

运行这些命令需要结合docker-compose一起使用。
且必须要在含有docker-compose.yml文件的目录中才可以使用,不然报错。

docker-compose build #构建服务
docker-compose ps #列出容器
docker-compose up #创建和启动容器
docker-compose exec #在容器里面执行命令
docker-compose scale #指定一个服务容器启动数量
docker-compose top #显示正在运行的容器进程
docker-compose logs #查看服务容器的输出
docker-compose stop/start/restart #停止/启动/重启服务

docker-compose安装

docker-compose是docker的独立产品,因此需要安装docker之后再单独安装docker compose

#下载docker-compose文件
curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
#将文件复制到/usr/local/bin环境变量下面
mv docker-compose /usr/local/bin
#给他一个执行权限
chmod +x /usr/local/bin/docker-compose

编写配置文件docker-compose.yml文件

version: '3'   #定义编排版本,共3版(1,2,3),1被淘汰,2的话只能单机编排,3的话即可以实现单机编排,也可以实现多机编排。
services:     #定义服务nginx:      #定义nginx服务hostname: nginx      #容器的主机名为nginxbuild:               #定义创建容器的过程 //如果有线程的镜像,直接写images: context: ./nginx   #指定创建容器的目录位置(存储dockerfile的目录)dockerfile: Dockerfile   #指定Dockerfile文件ports:            #定义端口- 1234:80       #暴露端口- 4321:443      #暴露端口networks:                      #指定网络ydq:                         #指定网络名称ipv4_address: 172.100.0.10  #指定ip地址volumes:                                 #数据卷,挂载目录- ./wwwroot:/usr/local/nginx/html      #前面宿主机,后面容器
networks:               #自定义网络ydq:                  #自定义网络名称driver: bridge       #自定义网络模式ipam:                #网络管理器config:            #配置参数- subnet: 172.100.0.0/16    #配置子网网段 
//networks的参数ipam即网络管理,其下还有driver参数即指定使用的网络模式,以及config配置参数(比如配置子网等)       

生成镜像容器

docker-compose -f docker-compose.yaml up -d  //-f调用文件。-d:开启守护进程
docker network ls
docker ps -a
docker-compose ps

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

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

相关文章

【C#】.net core 6.0 使用第三方日志插件Log4net,配置文件详细说明

欢迎来到《小5讲堂》 大家好,我是全栈小5。 这是《C#》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对知识点的理解和掌握。…

使用FFmpeg源码配置程序configure查看所有支持的编码器/解码器/封装/解封装及网络协议

查看支持编码器: configure --list-encoders 查看支持编码器: configure --list-decoders 查看所有支持的封装: configure --list-muxers 查看所有支持的解封装: configure --list-demuxers 查看所有支持的网络通信协议: configure --list-protocols

解决jsp request.getParameter乱码问题(兼容Tomcat 6~8三个版本)

JSP页面写法&#xff1a; <% page contentType"text/html; charsetutf-8" language"java" %> <% page import"java.io.*" %> <%! int getServerVersion(HttpServletRequest request) {ServletContext application request.getS…

移远通信亮相AWE 2024,以科技力量推动智能家居产业加速发展

科技的飞速发展&#xff0c;为我们的生活带来了诸多便利&#xff0c;从传统的家电产品到智能化的家居设备&#xff0c;我们的居家生活正朝着更智能、更便捷的方向变革。 3月14日&#xff0c;中国家电及消费电子博览会&#xff08;Appliance&electronics World Expo&#xf…

GPT如何与回归模型分析、混合效应模型、多元统计分析及结构方程模型、Meta分析、随机森林模型及贝叶斯回归分析结合应用

自2022年GPT&#xff08;Generative Pre-trained Transformer&#xff09;大语言模型的发布以来&#xff0c;它以其卓越的自然语言处理能力和广泛的应用潜力&#xff0c;在学术界和工业界掀起了一场革命。在短短一年多的时间里&#xff0c;GPT已经在多个领域展现出其独特的价值…

【物联网】Modbus 协议及Qinghub物联网平台应用

Modbus 协议简介 QingHub设计器在设计物联网数据采集时不可避免的需要针对Modbus协议的设备做相关数据采集&#xff0c;这里就我们的实际项目经验分享Modbus协议 你可以通过QingHub作业直接体验试用&#xff0c;也可以根据手册开发相应的代码块。 qinghub项目已经全面开源。 …

yocto系列之配置ubuntu22.04主机

回顾 在前面的文章中我们介绍了Yocto项目&#xff0c;并讨论了诸如open-embedded、poky、bitbake、recipes等主题。这是前面文章的链接&#xff1a; Yocto: 第1部分 - yocto系列之yocto是个什么东东 https://mp.csdn.net/mp_blog/creation/editor/136742286 在这篇文章中&a…

【本地图片转换为PDF】

本地图片转换为PDF 1.需要使用到pdfbox 需要添加如下依赖 <!-- https://mvnrepository.com/artifact/org.apache.pdfbox/pdfbox --><dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.…

sqllab第十九关通关笔记

知识点&#xff1a; 错误注入 最大长度为32位&#xff1b;如果目标长度>32时&#xff0c;需要利用截取函数进行分段读取referer注入 insert语句update语句 通过admin admin进行登录发现页面打印除了referer字段的信息 这应该是一个referer注入 首先进行测试一下 构造payl…

基于SpringBoot和Echarts的全国地震可视化分析实战

目录 前言 一、后台数据服务设计 1、数据库查询 2、模型层对象设计 3、业务层和控制层设计 二、Echarts前端配置 1、地图的展示 2、次数排名统计 三、最终结果展示 1、地图展示 2、图表展示 总结 前言 在之前的博客中基于SpringBoot和PotsGIS的各省地震震发可视化分…

C++提高笔记(四)---STL容器(stack、queue、list)

1、stack容器&#xff08;栈&#xff09; 1.1 栈stack基本概念 概念&#xff1a;stack是一种先进后出&#xff08;First In Last Out&#xff0c;FILO&#xff09;的数据结构&#xff0c;它只有一个出口 栈中只有顶端的元素才可以被外界调用&#xff0c;因此栈不允许有遍历行…

使用C#的winform控制数据库实例服务的运行状态

一、得到sqlserver的实例名 二、引用对应的程序集和命名空间 using System.ServiceProcess; C#操作服务要用的类 ServiceController 声明类 private ServiceController serviceController new ServiceController("MSSQLSERVER"); 三、判断服务状态 serviceCon…

上证指数000001行情数据API接口

# 测试&#xff1a;返回不超过10条数据&#xff08;2年历史&#xff09; https://tsanghi.com/api/fin/index/CHN/daily?tokendemo&ticker000001&order2Python示例 import requestsurl f"https://tsanghi.com/api/fin/index/CHN/daily?tokendemo&ticker000…

2024届 C++ 刷题 笔试强训 Day 02

选择题 01 使用 printf 函数打印一个 double 类型的数据&#xff0c;要求&#xff1a;输出为 10 进制&#xff0c;输出左对齐 30 个字符&#xff0c;4 位精度。以下哪个选项是正确的&#xff1f; A %-30.4e B %4.30e C %-30.4f D %-4.30f 题目解析&#xff1a; 本题考察格式化…

要将镜像推送到GitLab的Registry中的步骤

1、通过cli 模式登录gitlab &#xff08;命令行模式&#xff09; docker login git.asc-dede.de Username: haiyang Password: Login Succeeded 2、查看我的本地镜像&#xff1a; 3&#xff0c;推送镜像apollo_core到对应的gitlab项目的Registry 中 docker push registry.gi…

「Linux系列」Linux简介及常见的Linux系统

文章目录 一、Linux简介二、常见的Linux系统三、Linux 应用领域四、Linux对比Windows五、相关链接 一、Linux简介 Linux是一种自由和开放源代码的类Unix操作系统&#xff0c;它最初是作为Unix操作系统的替代品而开发的。Linux操作系统的内核由林纳斯托瓦兹在1991年首次发布&am…

Sunday 算法介绍

1. Sunday 算法介绍 「Sunday 算法」 是一种在字符串中查找子串的算法&#xff0c;是 Daniel M.Sunday 于1990年提出的字符串模式匹配算法。 Sunday 算法思想&#xff1a;对于给定文本串 T 与模式串 p&#xff0c;先对模式串 p 进行预处理。然后在匹配的过程中&#xff0c;当发…

UE5.1 iClone8 正确导入角色骨骼与动作

使用iClone8插件Auto Setup 附录下载链接 里面有两个文件夹,使用Auto Setup C:\Program Files\Reallusion\Shared Plugins 在UE内新建Plugins,把插件复制进去 在工具栏出现这三个人物的图标就安装成功了 iClone选择角色,导入动作 选择导出FBX UE内直接导入 会出现是否启动插件…

23.2 微服务SpringCloud基础实战(❤❤❤)

23.2 微服务基础实战 1. SpringCloud简介2. 项目整体设计3. 实战:新建多模块项目3.1 项目基础架构3.2 准备工作:删除src文件夹3.3 新建Maven子模块:课程服务模块3.4 新建课程列表模块3.5 新建课程价格模块3.6 架构总览4. 课程列表模块业务开发4.1 pom依赖引入4.2 pom组件引入4.…

在CentOS 7上快速安装配置Nginx

步骤 1: 安装EPEL存储库 EPEL&#xff08;Extra Packages for Enterprise Linux&#xff09;存储库提供了许多CentOS官方存储库中未包含的额外软件包。首先&#xff0c;我们需要安装EPEL存储库&#xff1a; sudo yum install epel-release步骤 2: 安装Nginx 通过安装好的EPE…