1.docker部署的好处
开发环境与生成环境保持一致,让程序正常运行。
部署节约时间,方便快速部署。
方便部署一些大小复杂的分布式系统。
学习成本低。
灵活集成服务器和应用。
2.通过docker安装mysql8
2.1.拉取MySQL8镜像
docker pull mysql:8.0
等待拉取完成
查看拉取完的镜像
2.2.docker运行mysql8
sudo docker run -d --name mysql8 -p 0.0.0.0:3309:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=111111 mysql:8.0
-d 表示后台运行容器。
-name 给运行的容器取一个名称。
-p 指定端口映射,将宿主机端口(也就是服务器开放的端口)映射到容器运行的端口。
-v 在宿主机找一个目录让容器的/var/lib/mysql映射。
-e MYSQL_ROOT_PASSWORD 设置环境变量,root的密码为111111。
mysql:8.0 运行的镜像为mysql:8.0。
2.3.服务器上测试登录msyql
进入容器
docker exec -it mysql8 bash
登录mysql
mysql -uroot -p
设置mysql远程连接权限
使用mysql库
USE mysql;
修改加密规则
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
更新一下用户的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '111111';
刷新生效
FLUSH PRIVILEGES;
退出msyql
quit
退出bash-4.4#
exit
重启mysql
docker restart mysql8
设置开机启动
docker update mysql8 --restart=always
2.4.远程连接数据库
开发服务器3309和8888端口,8888端口是给应用准备的
3.安装应用
3.1.在服务器上新建文件/home/apply/webpage
mkdir -p /home/apply/webapge
3.2.将打jar的项目上传到webpage文件夹下
3.3.制作Dockerfile文件
在jar包同一级文件夹下新建Dockerfile文件
FROM openjdk:8
VOLUME /home/apply/webpage
ADD fishexam.jar fishexam.jar
EXPOSE 8888
ENTRYPOINT ["java","-jar","/fishexam.jar"]
FROM openjdk:8 拉取一个jdk未1.8的依赖环境。
VOLUME /home/apply/webpage 指定数据卷为/home/apply/webpage。
ADD fishexam.jar fishexam.jar 添加fishexam.jar在容器中运行。
EXPOSE 该容器暴露的端口是多少,就是 jar 在容器中以多少端口运行。
ENTRYPOINT 容器启动之后执行的命令,java -jar /fishexam.jar 即启动 jar。
3.4.打包镜像
docker build -t fishexam .
3.5.运行容器
docker run -d -p 8888:8888 --name fishexam-8888 fishexam
3.6.访问
ip+端口(8888)