一. 实验要求
- 在虚拟机上安装Docker。
- 使用DockerHub上的Java基础镜像为你在spring boot课程中创建的demo程序书写Dockerfile。
- 在你的虚拟机上运行这个容器。
- 查看容器打印的日志,验证服务启动成功。
- 通过访问服务器验证运行成功。
- 请为整个流程书写实验报告。
二. 实验过程
实验环境:虚拟机:VirtualBox ; Linux: Ubuntu
Step1. Ubuntu安装Docker:
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
apt install docker.io
查看版本号 验证安装成功:
docker –version
Step2. 从DockerHub上下载Java基础镜像:(如果速度过慢或者无法下载,采用国内的镜像源)
docker pull java:8u111
Step3. 从DockerHub上下载MySQL镜像:(如果速度过慢或者无法下载,采用国内的镜像源)
docker pull mysql:8.0.21
Step4. 创建一个文件夹,存放springboobweb.jar
Step5. 在同一个文件夹下,编写Dockerfile
vim Dockerfile
Step6. 构建spring boot项目的镜像:
docker build -t image-springbootweb .
Step7. 查看Java基础镜像、MySQL镜像以及image-springbootweb镜像是否都存在:
docker images
Step8. 首次启动MySQL容器:
docker run --name container-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123 -d mysql:8.0.21
(后续可用:docker start [container-mysql ID])
Step9. 进入MySQL容器:
docker exec -it container-mysql bash
Step10. 初始登录MySQL:
mysql -u root –p
ALTER USER 'root'@'localhost' IDENTIFIED BY '123';
Step11. 创建相应的数据库和表:(也可以连接到宿主机上的MySQL,如:通过navicat连接;或者导入.mysql文件来创建。本例因为这两个方法均失败,采用重新创建的方式,后续会继续尝试。)
CREATE DATABASE springbootwebdb;
show databases;
use springbootwebdb;
创建user表:
创建logininfo表:
show tables;
Step12. 查看各个容器:
docker ps –a
Step13. 运行各个容器:
sudo docker start [container-mysql ID]
docker run -p 8081:8081 image-springbootweb
Step14. 浏览器访问:
localhost:8081
Step15. 查看验证MySQL中的表:
Step16. 经验证,spring boot项目成功部署在docker服务器上。