资源准备
[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: always
enviroment:
MYSQL_ROOT_PASSWORD: root
app:
build: ./bsbdj-app/
depends_on:
- db
ports:
- "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入门到专精》课程的学习笔记