资源准备

[root@localhost docker]# tree bsbdj/
bsbdj/
├── bsbdj-app
│   ├── application-dev.yml
│   ├── application.yml
│   └── bsbdj.jar
└── bsbdj-db└── init-db.sql

构建APP镜像

进入bsbdj-app目录

cd bsbdj-app

编写Dockerfile

FROM openjdk:8u222-jre
WORKDIR /usr/local/bsbdj
ADD bsbdj.jar .
ADD application.yml .
ADD application-dev.yml .
EXPOSE 80
CMD ["java", "-jar", "bsbdj.jar"]

构建镜像

docker build -t stepin.cn/bsbdj .

构建数据库镜像

编写Dockerfile

FROM mysql:5.7
# 数据库初始化目录
WORKDIR /docker-entrypoint-initdb.d
ADD init-db.sql .

构建镜像

docker build -t stepin.cn/bsbdj-db .

运行容器

# 运行db容器
docker run -d -e MYSQL_ROOT_PASSWORD=root stepin.cn/bsbdj-db
# 验证db容器
docker exec -it 容器id /bin/bash
# 进入容器终端,使用mysql客户端登录数据库
mysql -uroot -proot# 运行app容器
docker run -d stepin.cn/bsbdj-app

编写docker-compose.yml

# 解析yml的版本
version: '3.3'
services:db:build: ./bsbdj-db/restart: alwaysenviroment:MYSQL_ROOT_PASSWORD: rootapp:build: ./bsbdj-app/depends_on:- dbports:- "80:80"

yaml中通过空格缩进,体现上下级关系

yaml表达字符使用单引号与双引号是等价的

docker-compose管理应用

# 前台运行
docker-compose up
# 后台运行
docker-compose up -d
# 查看日志
docker-compose logs
# 查看某个容器的日志
docker-compose logs bsbdj-app
# 停止容器
docker-compose down

访问应用:http://{{宿主机ip}}

说明

Docker Compose仅适用于单机的多容器管理,生产环境很少使用。多作为demo演示,快速体验使用。

版权说明

本文章内容为马士兵教育《架构师必备技能docker入门到专精》课程的学习笔记

Docker入门到专精08-Docker Compose实战相关推荐

  1. Docker 入门系列(2)- Docker 镜像, 免 sudo 使用 docker 命令、获取查看、修改镜像标签、查找删除创建镜像、导入导出镜像

    1. 免 sudo 使用 docker 命令 如果还没有 docker group 就添加一个 sudo groupadd docker 将用户加入该 group 内 sudo gpasswd -a ...

  2. Docker 入门系列(3)- Docker 容器(创建、启动、终止、进入、删除、导入、导出容器、容器和镜像转化)

    Docker 容器 简单来说,容器是镜像的一个运行实例.所不同的是,镜像是静态的只读文件,而容器带有运行时需要的可写文件层. 如果认为虚拟机是模拟运行的一整套操作系统(包括内核.应用运行态环境和其他系 ...

  3. Docker入门系列之一:在一个Docker容器里运行指定的web应用

    实现题目描述的这个需求有很多种办法,作为入门,让我们从最简单的办法开始. 首先使用命令docker ps确保当前没有正在运行的Docker实例. 运行命令docker run -it nginx: 然 ...

  4. Docker 入门系列(6)- Docker 互联

    容器互联机制 容器的互联 (linking) 是一种让多个容器中应用进行快速交互的方式.它会在源和接收容器之间创建连接关系,接收容器可以通过容器名快速访问到源容器,而不用指定具体的 IP 地址. 1. ...

  5. Docker 入门系列(5)- Docker 端口映射(映射所有IP地址、映射到指定地址和指定端口、映射指定地址任意端口、查看映射端口配置)

    端口映射 映射容器内应用的服务端口到本地宿主主机 1. 从外部访问容器应用 在启动容器的时候,如果不指定对应的参数,在容器外部是无法通过网络来访问容器内的网络应用和服务的.当容器中运行一些网络应用,要 ...

  6. Docker 入门系列(4)- Docker 数据管理(挂载目录、挂载文件、数据卷挂载、数据卷共享、数据卷删除、数据卷容器备份和恢复)

    基于底层存储实现,Docker 提供了三种适用于不同场景的文件系统挂载方式:Bind Mount.Volume 和 Tmpfs Mount. Bind Mount 能够直接将宿主操作系统中的目录和文件 ...

  7. docker入门(十三):Docker构建自己的ubuntu镜像

    构建我的ubuntu Docker hub 中 99%的镜像都是由下面这一层开始的 FROM scratch 然后构建我们自己的层. (1)编写配置文件dockerfile # 新建dockerfil ...

  8. Docker入门实践学习总结

    Docker入门实践学习总结 文章目录 Docker入门实践学习总结 一.Docker概述 1.Docker为什么会出现? 2.Docker的历史 3.细聊Docker 4.Docker能干啥 二.D ...

  9. Docker入门系列之二:使用dockerfile制作包含指定web应用的镜像

    2019独角兽企业重金招聘Python工程师标准>>> 在前一篇文章:Docker入门系列之一:在一个Docker容器里运行指定的web应用 里, 我们已经成功地将我们在本地开发的一 ...

最新文章

  1. C语言应用于LR中-如何得到数组长度
  2. C++ 虚函数在基类与派生类对象间的表现及其分析
  3. html如何提交保存,html表单提交保存
  4. 搭建Ubuntu18.04+Anaconda3.x+Pycharm+SimpleITK(二)
  5. poj1509最小表示法
  6. 关键字static在C和C++中的区别
  7. leetcode 打印_LeetCode第118号问题:杨辉三角
  8. Cocos2d-x创建包边字
  9. 深入浅出 ASP.NET Core 与 Docker 入门课程说明
  10. C++函数概念解析(1)
  11. 字符串按照单词为单位逆序排列
  12. python与数值计算环境安装
  13. 最齐全的宋体字体素材,速来收藏
  14. 软考高级 真题 2017年上半年 信息系统项目管理师 案例分析
  15. 领峰:个人如何投资白银炒白银有哪些方法
  16. git commit --amend撤销方法
  17. opencv将16位灰度图片转化为8位
  18. Visual Paradigm简单教程(1):绘制状态机图
  19. 送给女朋友的java程序_逗女朋友开心的玫瑰花Java web程序
  20. gs 服务器文件,服务器gs

热门文章

  1. Android Weekly #35 知识工作者就是管理者——虽未管人,但在管事
  2. [单片机][IIC/I2C][APDS9960] 手势传感器 4种手势
  3. Working Practice-破窗理论与写代码
  4. java监听适配器是什么_JAVA 监听器与适配器 小小的分析
  5. java如何使用虹软sdk_Java使用虹软SDK做人脸识别之十分简单的入门
  6. cindy java_Cindy User Guide
  7. NGS各种组学建库原理(图解)
  8. 如何解决MathType无法正常使用问题
  9. 智慧社会:大数据与社会物理学 (财富汇) - 电子书下载(高清版PDF格式+EPUB格式)...
  10. Linux下jar启停脚本