Docker编排利器DockerCompose
Docker 编排利器 DockerCompose,编排之后可以一次性通过一条命令启动一组服务
例如一条命令启动 SpringBoot 项目,同时启动 SpringBoot 项目依赖的其他中间件(MySQL、Redis等)
系列文章欢迎访问:https://www.itwxe.com/posts/9e76db89/
一、安装DockerCompose
1、下载 Docker Compose 。
curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
2、授予 docker-compose 文件可执行权限。
chmod +x /usr/local/bin/docker-compose
3、查看会否安装成功。
docker-compose --version

二、DockerCompose详解
1. 使用DockerCompose步骤
- 使用
Dockerfile构建自定义镜像上传服务器,一般需要修改初始镜像行为时才需要使用。 - 使用
docker-compose.yml文件定义需要部署的应用程序服务,这样它们可以在隔离环境中一起运行,以便执行脚本一次性部署。 - 最后执行
docker-compose up命令来创建并启动所有服务。
2. docker-compose.yml常用命令
version
描述 Compose 文件的版本信息,各版本详细信息可以参考 官方文档 。
# 指定 3 版本语法
version: '3'
services
services 节点下面的即是定义的各种服务,服务之下为容器,容器与容器直之间可以以服务名称为域名进行访问。
image
指定运行的镜像名称。
# 指定镜像为 mysql5.7
image: mysql:5.7
container_name
指定容器名称。
# 容器名称
container_name: admin_mysql
ports
指定宿主机和容器的端口映射。
# 映射 mysql端口
ports:
- 3306:3306
volumes
将宿主机的文件或目录挂载到容器中。
# 挂载 mysql 目录到容器
volumes:
- /itwxe/dockerData/mysql/data:/var/lib/mysql
- /itwxe/dockerData/mysql/conf:/etc/mysql
- /itwxe/dockerData/mysql/log:/var/log/mysql
environment
配置环境变量。
# 设置 mysql 密码
environment:
- MYSQL_ROOT_PASSWORD=root
links
连接其他容器的服务。
# 可以 admin_mysql 为域名访问服务名称为 db 的容器
links:
- db:admin_mysql
3. Docker Compose常用命令
启动所有相关容器
docker-compose up -d
指定文件启动
docker-compose -f docker-compose.yml up -d
停止所有相关容器
docker-compose stop
列出所有容器信息
docker-compose ps
停止并删除所有容器(注意数据挂载)
docker-compose down
三、SpringBoot示例
此处还是以自己写的项目为示例,我的项目依赖 MySQL、Redis、minio(非必要)。
1、打包 SpringBoot 项目镜像,打包可以参考 Docker使用maven插件打包SpringBoot项目。
2、我的项目启动依赖 MySQL 中的 sunny 库,首先得创建容器,挂载宿主机目录,可以参考 Docker搭建MySQL并挂载数据。
3、项目依赖 Redis 镜像自定义配置启动,可以参考 Docker搭建Redis5.0并挂载数据。
4、修改项目 MySQL 和 Redis 使用别名访问,以 MySQL 为例。
# 修改前
jdbc:mysql://192.168.5.33:3306/sunny?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=GMT%2B8
# 修改后
jdbc:mysql://admin_mysql:3306/sunny?useUnicode=true&characterEncoding=utf8mb4&serverTimezone=GMT%2B8
5、编辑 docker-compose.yml 文件。
version: '3'
services:
# 指定MySQL服务名称
mysql:
# 指定服务使用的镜像
image: mysql:5.7
# 指定容器名称
container_name: admin_mysql
# 指定服务运行的端口
ports:
- 3306:3306
# 指定容器中需要挂载的文件
volumes:
- /itwxe/dockerData/mysql/data:/var/lib/mysql
- /itwxe/dockerData/mysql/conf:/etc/mysql
- /itwxe/dockerData/mysql/log:/var/log/mysql
# 指定容器的环境变量
environment:
- MYSQL_ROOT_PASSWORD=123456
# 指定Redis服务名称
redis:
# 使用自定义镜像(指定配置文件)
image: itwxe/redis:5.0.8
container_name: admin_redis
ports:
- 6379:6379
volumes:
- /itwxe/dockerData/redis/data:/data
# 指定项目服务名称
sunny-admin:
# 指定服务使用的镜像
image: itwxe/sunny-admin:0.0.1
# 指定容器名称
container_name: sunny-admin
# 指定服务运行的端口
ports:
- 9002:9002
# 指定容器中需要挂载的文件
volumes:
- /itwxe/dockerData/sunny-admin/logs:/var/logs
# 指定别名,项目yml中可以通过别名访问,例如:
links:
- mysql:admin_mysql
- redis:admin_redis
6、进入 docker-compose.yml 文件目录,启动服务。
docker-compose up -d

可以看到服务都正常启动了,此时可以访问下项目,项目正常访问。

都读到这里了,来个 点赞、评论、关注、收藏 吧!
文章作者:IT王小二
首发地址:https://www.itwxe.com/posts/e4feb9b4/
版权声明:文章内容遵循 署名-非商业性使用-禁止演绎 4.0 国际 进行许可,除特殊声明外皆为原创,转载请在文章页面明显位置给出作者与原文链接。
Docker编排利器DockerCompose的更多相关文章
- Docker应用:Docker-compose(容器编排)
阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...
- Win10上的Docker应用:Docker-compose(容器编排)
阅读目录: Docker应用:Hello World Docker应用:Docker-compose(容器编排) 前言: 昨天完成了Docker入门示例(Docker应用:Hello World),示 ...
- Docker那些事儿之编排工具docker-compose
前面已经讲解过docker的一些基础使用,镜像创建的操作过程,如果大量容器需要同时部署,一个一个容器进行服务器上的部署,估计要疯掉,在使用上我们需要找到更好更便捷的使用方式,今天要讲解的容器编排工具d ...
- Docker快速入门——Docker-Compose
一.Docker-Compose简介 1.Docker-Compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排.Docker-Com ...
- Docker入门之docker-compose
参考:https://blog.51cto.com/9291927/2310444 一,Docker-compose简介 1,Docker-compose简介 Docker-Compose项目是Doc ...
- docker学习(7) docker-compose使用示例
上一回学习了如何利用docker搭建一个mysql + java service + nginx,总共4个docker容器,如果采用docker run的方式一个一个容器去创建十分麻烦.为了能更高效的 ...
- docker进阶-初探Docker-compose
什么是Docker-compose compose 翻译成中文的意思是"构成"和"组成"的意思.Docker我之前把他比作一个大轮船,这个轮船上面可以放很多 ...
- docker实践之docker-compose部署mysql
文章目录 docker实践之docker-compose部署mysql 1.安装部署docker 2.编写docker-compose文件 3.编写配置文件和初始化文件 4.启动数据库 5.检查初始化 ...
- Docker系列-(3) Docker-compose使用与负载均衡
上一篇文章介绍了docker镜像的制作与发布,本文主要介绍实际docker工程部署中经常用到的docker-compose工具,以及docker的网络配置和负载均衡. Docker-compose介绍 ...
随机推荐
- Jmeter(五十一) - 从入门到精通高级篇 - jmeter之运动战(详解教程)
1.简介 运动战是一种军事作战方式,依托较大的作战空间来换取时间移动兵力包围敌方,以优势兵力速战速决,运动战的运用归为这样一段话"避敌主力,诱敌深入,集中优势兵力逐个击破".今天宏 ...
- C语言真正的编译过程
说实话,很多人做了很久的C/C++,也用了很多IDE,但是对于可执行程序的底层生成一片茫然,这无疑是一种悲哀,可以想象到大公司面试正好被问到这样的问题,有多悲催不言而喻,这里正由于换工作的缘故,所以打 ...
- 一文彻底理解Apache Hudi的多版本清理服务
Apache Hudi提供了MVCC并发模型,保证写入端和读取端之间快照级别隔离.在本篇博客中我们将介绍如何配置来管理多个文件版本,此外还将讨论用户可使用的清理机制,以了解如何维护所需数量的旧文件版本 ...
- 浏览Github必备的5款神器级别的Chrome插件
我们知道 Github 是程序员特有的宝藏,也可以称它为 GayHub, 大家浏览 Github 的时候,一定遇到过下面这些问题: 不克隆到本地的情况下阅读代码困难. 无法单独下载仓库中的某个文件/文 ...
- 点分治&cdq分治 总结
游荡的孤高灵魂不需要羁绊之处. 洛谷题单 点分治 前置芝士 树的重心 树分治 例题略解 P3806 [模板]点分治1 板子题,先暴力找到整棵树的重心,然后先求出重心到各点的距离,进而算出他所在树的各个 ...
- csp-s模拟测试52-53
留坑.... 改完题再说吧. 留坑....最近考得什么鬼??模拟53T1 u(差分) 一道差分题????然而考场没有想到如何维护斜率上的差分,事后经miemeng和cyf的生(xuan)动(xue)讲 ...
- HAOI2008 木棍分割 数据结构优化dp+二分答案
很久之前打的题,现在补篇博客 打滚动数组 #E. 木棍分割 Accepted 100 1712 ms 1512 KiB 2019-05-07 17:01:23 Short 不打滚动数组 #419. ...
- Huawei USG6530防火墙
CF卡:(Compact Flash)最初是一种用于便携式电子设备的数据存储设备.作为一种存储设备,它革命性的使用了闪存 与sd卡的区别:SD卡的优点是安全.体积小巧,价格较之CF卡相对比较低,适合用 ...
- Linux常见信号介绍
1.信号 首先信号我们要和信号量区分开来,虽然两者都是操作系统进程通信的方式.可以简单的理解,信号是用来通知进程发生了什么需要做什么,信号量一般是用作进程同步(pv操作) 2.常见信号量 (以下数字标 ...
- 图解 Redis | 差点崩溃了,还好有主从复制
大家好,我是小林哥,又来图解 Redis 啦. 我在前两篇已经给大家图解了 AOF 和 RDB,这两个持久化技术保证了即使在服务器重启的情况下也不会丢失数据(或少量损失). 不过,由于数据都是存储在一 ...