Docker——【部署项目的最优解】使用DockerCompose部署项目

2023-10-21 08:28

本文主要是介绍Docker——【部署项目的最优解】使用DockerCompose部署项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

前言

1、安装docker-compose 

2、为什么使用docker-compose?

3、如何使用DockerCompose

3.1、创建docker-compose文件

3.2、docker-compose相关命令:


前言

        对Docker常规操作部署项目不了解的伙伴,可以先看看这篇文章:http://t.csdnimg.cn/MkjuC


1、安装docker-compose 

        大家先看看自己的服务器上有没有安装docker-compose,如下就是安装过了:

        没有安装的,使用命令:yum install docker-compose


2、为什么使用docker-compose?

        在我们上一篇文章学习的docker中,部署项目,我们可以感受到,需要对每个容器都docker run呀,创建镜像呀等等非常繁杂的命令,还有很多是重复的命令。那对于多容器的复杂应用来说,这样操作,就会比较乱,例如我们创建一个集群,创建着创建着,都忘了自己搞过哪些东西了~

        因此,我们采用DockerCompose工具能极大的简化容器的创建、管理和维护~


3、如何使用DockerCompose

        DockerCompose是通过一个单独的docker-compose.yml模版文件来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署~

3.1、创建docker-compose文件

        我们先为后续操作创建一个目录,并进入目录,准备好java项目的jar包,以及上一篇文章提到的Dockefile文件,然后创建一个docker-compose.yml文件,打开后,给这个文件添加如下内容:

version: '3.3'
services:mysql:image: 'mysql:5.7'container_name: mysqlrestart: alwaysenvironment:TZ: Asia/ShanghaiMYSQL_ROOT_PASSWORD: 1111ports:- "3306:3306"volumes:- "./mysql/conf:/etc/mysql/conf.d"- "./mysql/data:/var/lib/mysql"- "./mysql/init:/docker-entrypoint-initdb.d"hmall:build:context: .dockerfile: Dockerfilecontainer_name: cnblogrestart: alwaysports:- "8080:8080"depends_on:- mysqlnetworks:default:external:name: javaProject

这是个yml格式的文件,文件的格式要求比较严格,大家仔细一点~

文件内容说明:

        其他没有做说明的,大家根据前面的知识就可以理解的,其实就是创建并启动容器时的命令换了一种写法~ 

        启动docker-compose.yml内的所有容器:

        命令:docker-compose up -d 

        -d 的意思指让这些容器在后台运行~

到这儿,就需要我们再了解一下,docker-compose的相关命令了:

3.2、docker-compose相关命令:

一下命令,都只针对当前目录下: 

  • docker-compose up :创建并启动所有的service容器
  • docker-compose down :停止并移除所有容器、网络
  • docker-compose ps :列出所有启动的容器
  • docker-compose logs :查看指定的容器的日志
  • docker-compose stop :停止容器
  • docker-compose start :启动容器【容器已经被创建过了】
  • docker-compose restart :重启容器
  • docker-compose top :查看运行的进程
  • docker-compose exec :在指定的运行中容器内执行命令

另外还有两个可选参数:

  • -f  : 指定compose文件的路径和名称【不指定则默认是docker-compose.yml】
  • -p : 指定Project名称

命令怎么使用,就不展示了,都比较简单,可自行尝试

好啦,本期就到这里了,下期见啦!  docker到这里结束啦~~~

这篇关于Docker——【部署项目的最优解】使用DockerCompose部署项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/253155

相关文章

postgresql使用UUID函数的方法

《postgresql使用UUID函数的方法》本文给大家介绍postgresql使用UUID函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录PostgreSQL有两种生成uuid的方法。可以先通过sql查看是否已安装扩展函数,和可以安装的扩展函数

如何使用Lombok进行spring 注入

《如何使用Lombok进行spring注入》本文介绍如何用Lombok简化Spring注入,推荐优先使用setter注入,通过注解自动生成getter/setter及构造器,减少冗余代码,提升开发效... Lombok为了开发环境简化代码,好处不用多说。spring 注入方式为2种,构造器注入和setter

MySQL中比较运算符的具体使用

《MySQL中比较运算符的具体使用》本文介绍了SQL中常用的符号类型和非符号类型运算符,符号类型运算符包括等于(=)、安全等于(=)、不等于(/!=)、大小比较(,=,,=)等,感兴趣的可以了解一下... 目录符号类型运算符1. 等于运算符=2. 安全等于运算符<=>3. 不等于运算符<>或!=4. 小于运

使用zip4j实现Java中的ZIP文件加密压缩的操作方法

《使用zip4j实现Java中的ZIP文件加密压缩的操作方法》本文介绍如何通过Maven集成zip4j1.3.2库创建带密码保护的ZIP文件,涵盖依赖配置、代码示例及加密原理,确保数据安全性,感兴趣的... 目录1. zip4j库介绍和版本1.1 zip4j库概述1.2 zip4j的版本演变1.3 zip4

Python 字典 (Dictionary)使用详解

《Python字典(Dictionary)使用详解》字典是python中最重要,最常用的数据结构之一,它提供了高效的键值对存储和查找能力,:本文主要介绍Python字典(Dictionary)... 目录字典1.基本特性2.创建字典3.访问元素4.修改字典5.删除元素6.字典遍历7.字典的高级特性默认字典

使用Python构建一个高效的日志处理系统

《使用Python构建一个高效的日志处理系统》这篇文章主要为大家详细讲解了如何使用Python开发一个专业的日志分析工具,能够自动化处理、分析和可视化各类日志文件,大幅提升运维效率,需要的可以了解下... 目录环境准备工具功能概述完整代码实现代码深度解析1. 类设计与初始化2. 日志解析核心逻辑3. 文件处

MySQL 主从复制部署及验证(示例详解)

《MySQL主从复制部署及验证(示例详解)》本文介绍MySQL主从复制部署步骤及学校管理数据库创建脚本,包含表结构设计、示例数据插入和查询语句,用于验证主从同步功能,感兴趣的朋友一起看看吧... 目录mysql 主从复制部署指南部署步骤1.环境准备2. 主服务器配置3. 创建复制用户4. 获取主服务器状态5

一文详解如何使用Java获取PDF页面信息

《一文详解如何使用Java获取PDF页面信息》了解PDF页面属性是我们在处理文档、内容提取、打印设置或页面重组等任务时不可或缺的一环,下面我们就来看看如何使用Java语言获取这些信息吧... 目录引言一、安装和引入PDF处理库引入依赖二、获取 PDF 页数三、获取页面尺寸(宽高)四、获取页面旋转角度五、判断

C++中assign函数的使用

《C++中assign函数的使用》在C++标准模板库中,std::list等容器都提供了assign成员函数,它比操作符更灵活,支持多种初始化方式,下面就来介绍一下assign的用法,具有一定的参考价... 目录​1.assign的基本功能​​语法​2. 具体用法示例​​​(1) 填充n个相同值​​(2)

Spring StateMachine实现状态机使用示例详解

《SpringStateMachine实现状态机使用示例详解》本文介绍SpringStateMachine实现状态机的步骤,包括依赖导入、枚举定义、状态转移规则配置、上下文管理及服务调用示例,重点解... 目录什么是状态机使用示例什么是状态机状态机是计算机科学中的​​核心建模工具​​,用于描述对象在其生命