使用Docker Compose部署SpringBoot应用
使用Docker Compose部署SpringBoot应用
原创: 梦想de星空 macrozheng 6月19日
Docker Compose是一个用于定义和运行多个docker容器应用的工具。使用Compose你可以用YAML文件来配置你的应用服务,然后使用一个命令,你就可以部署你配置的所有服务了。
安装
下载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
修改该文件的权限为可执行:
chmod +x /usr/local/bin/docker-compose
查看是否已经安装成功:
docker-compose --version
使用Docker Compose的步骤
- 使用Dockerfile定义应用程序环境,一般需要修改初始镜像行为时才需要使用;
- 使用docker-compose.yml定义需要部署的应用程序服务,以便执行脚本一次性部署;
- 使用docker-compose up命令将所有应用服务一次性部署起来。
docker-compose.yml常用命令
image
指定运行的镜像名称
# 运行的是mysql5.7的镜像image: mysql:5.7
container_name
配置容器名称
# 容器名称为mysqlcontainer_name: mysql
ports
指定宿主机和容器的端口映射(HOST:CONTAINER)
# 将宿主机的3306端口映射到容器的3306端口ports: - 3306:3306
volumes
将宿主机的文件或目录挂载到容器中(HOST:CONTAINER)
# 将外部文件挂载到myql容器中volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql
environment
配置环境变量
# 设置mysqlroot帐号密码的环境变量environment: - MYSQL_ROOT_PASSWORD=root
links
连接其他容器的服务(SERVICE:ALIAS)
# 可以以database为域名访问服务名称为db的容器links: - db:database
Docker Compose常用命令
构建、创建、启动相关容器:
# -d表示在后台运行docker-compose up -d
停止所有相关容器:
docker-compose stop
列出所有容器信息:
docker-compose ps
使用Docker Compose 部署应用
编写docker-compose.yml文件
Docker Compose将所管理的容器分为三层,工程、服务及容器。docker-compose.yml中定义所有服务组成了一个工程,services节点下即为服务,服务之下为容器。容器与容器直之间可以以服务名称为域名进行访问,比如在mall-tiny-docker-compose服务中可以通过jdbc:mysql://db:3306这个地址来访问db这个mysql服务。
version: '3'services: # 指定服务名称 db: # 指定服务使用的镜像 image: mysql:5.7 # 指定容器名称 container_name: mysql # 指定服务运行的端口 ports: - 3306:3306 # 指定容器中需要挂载的文件 volumes: - /mydata/mysql/log:/var/log/mysql - /mydata/mysql/data:/var/lib/mysql - /mydata/mysql/conf:/etc/mysql # 指定容器的环境变量 environment: - MYSQL_ROOT_PASSWORD=root # 指定服务名称 mall-tiny-docker-compose: # 指定服务使用的镜像 image: mall-tiny/mall-tiny-docker-compose:0.0.1-SNAPSHOT # 指定容器名称 container_name: mall-tiny-docker-compose # 指定服务运行的端口 ports: - 8080:8080 # 指定容器中需要挂载的文件 volumes: - /etc/localtime:/etc/localtime - /mydata/app/mall-tiny-docker-compose/logs:/var/logs
注意:如果遇到mall-tiny-docker-compose服务无法连接到mysql,需要在mysql中建立mall数据库,同时导入mall.sql脚本。具体参考使用Dockerfile为SpringBoot应用构建Docker镜像中的运行mysql服务并设置部分。
使用maven插件构建mall-tiny-docker-compose镜像
注意:构建有问题的可以参考使用Maven插件构建Docker镜像
运行Docker Compose命令启动所有服务
先将docker-compose.yml上传至Linux服务器,再在当前目录下运行如下命令:
docker-compose up -d
访问接口文档地址http://192.168.3.101:8080/swagger-ui.html:
转载于:https://www.cnblogs.com/guoyinghome/p/11220332.html
使用Docker Compose部署SpringBoot应用相关推荐
- docker compose部署服务
1 用docker compose部署服务 - 需求:假如现在我们手里有很多容器,每个容器对应每个服务,有nginx容器,redis容器,mysql容器等.现在我们需要批量化的去管理,批量启动,停止, ...
- 使用Docker Compose 部署Nexus后提示:Unable to create directory /nexus-data/instance
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- 使用Docker Compose 部署Nexus后初次登录账号密码不正确,并且在nexus-data下没有admin.password
场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...
- Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署Nexus3时的docker-compose.yml代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署GitLab服务,搭建自己的代码托管平台(图文教程)
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- Docker Compose部署项目到容器-基于Tomcat和mysql的项目yml配置文件代码
场景 Docker-Compose简介与Ubuntu Server 上安装Compose: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/deta ...
- IDEA配置Docker一键部署SpringBoot项目(企业级做法)
Docker一键部署SpringBoot项目 前言 一.开启Linux的Docker远程访问 1.1 安装vim工具: 1.2 修改`daemon.json`的配置: 1.3 加入配置: 1.4 重新 ...
- Docker Compose配置springboot微服务项目
[Docker那些事]系列文章 docker 安装 与 卸载 centos Dockerfile 文件结构.docker镜像构建过程详细介绍 Dockerfile文件中CMD指令与ENTRYPOINT ...
最新文章
- java assetmanager_AssetManager asset的使用
- expect批量执行命令
- java 初级编程题_java基础经典编程题
- Python机器学习--KNN归一化、距离的惩罚
- linux menuconfig usb,[Linux]make menuconfig里面的选项很重要
- android调用摄像头拍照
- java每轮排序结果,冒泡排序及其优化java
- 通过sql server的作业调度+存储过程来实现系统定时任务的方法
- jsp标签 meta的解释
- Asp.Net Core 入门(八)—— Taghelper
- linux下磁盘及文件系统基础知识(1)
- 新牛牛盲盒微信小程序源码_支持流量变现,带完整素材图片
- 运用spss modeler运用支持向量机_使用支持向量回归进行Facebook股票预测
- Beyond Compare比较class文件
- 新颖的自我介绍_有创意的自我介绍10篇
- 用计算机确定照片的黑白灰,终极解密 如何拍摄强烈震撼人心的黑白照片
- 20110814炒股日记--关于内外盘【600192长城电工】
- _WIN32_WINNT not defined
- ios 常见异常之- Terminating app due to uncaught exception ‘NSInternalInconsistencyException‘, reason:
- 迟来的加勒比海盗3 观后
热门文章
- python化学公式_(CSP)201912-3化学方程式-python实现
- php编辑工具绿色,php编写软件下载|
- linux的相关网站,与Linux相关的一些网站
- android源码国内镜像,Fuchsia OS 源代码国内镜像上线
- c语言产生带字母的随机数,菜鸟求助,写一个随机输出26个英文字母的程序
- AI实战:基于AdvancedEAST的自然场景图像文本检测算法
- python写背单词软件_python实现屏保程序(适用于背单词)
- java litjson_仿造 Gson 的自制 json 解析器
- html怎么做成3d正方体,利用CSS3的3D效果制作正方体
- leetcode求众数