docker 搭建一个简单springboot项目

这篇文章主要是记录自己搭建环境出现的一些问题和解决方式,主要参考的 https://www.runoob.com/docker,可以说直接按照他里面的文章来的吧,但是自己动手终归会有特殊情况,所以记录一下。

 

系统:CentOS Linux release 7.9.2009 (Core)

1,安装docker

网上有很多,我是直接使用命令 

 curl -sSL https://get.daocloud.io/docker | sh

什么也不需要操作,等待执行完毕,根据网络等待时间也是有异,我大概等了3分钟左右。docker ps 提示

Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

 

搜了一下,重启好像能解决 ,最开始是用 sudo service docker restart,

不过提示 --Redirecting to /bin/systemctl restart docker.service,这个并不是报错,只是个日志信息,上面的问题在执行这个命令后是已经解决了。

这个提示是linux版本问题,业精于勤荒于嬉,太久没有用linux一些基本的命令都忘了。

其实最开始用这个就行--systemctl restart docker.service。再次执行docker ps就没问题了。

2,安装mysql

先搜一下版本,看看自己用什么版本的MySQL,执行--docker search mysql 显示如下

 

 

??并不好用,直接去docker仓库找吧,这是地址--https://hub.docker.com/ 。

我之前是直接买的阿里的MySQL5.7,毕竟不贵而且也稳定,主要还是稳定。我自己也懒得做备份这些事了。

纠结了一下到底用什么,本来求稳还是5.7,但是想想还是算了,没这个必要,虽然我现在搭建的这个是生产环境,但是是很小的项目,出了问题也不怕(大不了直接跑路)。

随便提一下,自己用的话要去了解5.7和8的区别,选择适合的才是最好的。

用MySQL8.0(我此时在https://hub.docker.com/_/mysql?tab=tags看到的最新的版本是 mysql 8.0.27)

docker pull mysql,默认tag是latest,所以此命令也等于 docker pull mysql:latest

等待下载完毕,docker images 能看到拉下来的MySQL

执行--

docker run --name mysql -p 3306:3306 -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=password2021 -d mysql

这个命令主要作用就是将mysql镜像3306端口映射宿主机3306端口,用户名-- root,密码-- password2021,挂载mysql镜像/var/lib/mysql 目录到宿主机 /data/mysql。

启动mysql镜像的命令还有很多扩展,我这个命令只算是最基本的。
docker ps 能查看启动的容器。完成!


3,安装nginx


docker pull nginx;
docker run --name nginx -p 80:80  --privileged  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/log:/var/log/nginx -v /user/service/view:/usr/service/view   -d nginx
报错,docker无法直接挂载文件,推荐是挂载目录,但是网上也有一些解决方案
删除容器 docker rm nginx
在宿主机把自己的nginx配置放到 /data/nginx/conf/nginx.conf,再次执行

docker run --name nginx -p 80:80  --privileged  -v /data/nginx/conf/nginx.conf:/etc/nginx/nginx.conf -v /data/nginx/log:/var/log/nginx -v /user/service/view:/usr/service/view   -d nginx

ok没问题。

这个时候就需要部署java项目了

4,部署springboot项目

首先打包成jar,比如是test.jar,然后把dockerfile和jar放到服务器同一目录下。

打包是在windows电脑打包的,所以服务器不需要java环境,也不需要maven环境。

然后 docker build -f Dockerfile -t test:1.0

 

dockerfile 内容

FROM java:8

COPY test.jar /app.jar

EXPOSE 80

ENTRYPOINT ["java", "-jar", "app.jar"]

dockerfile怎么写还是需要自己去了解一下才是最好的,不过我这内容很简单,拉java8的docker镜像,以此为基础构建自己的镜像。把jar包copy到镜像里去,启动服务。

 docker images 能看到 test:1.0 镜像。

docker run --name wxkoiok -p 8810:80  --privileged=true   -d test:1.0。

完成。

posted @ 2021-11-12 23:01  芜巷  阅读(159)  评论(0编辑  收藏  举报