1.下载docker并设置自启动
yum下载docker
yum install -y docker-ce
下载完之后可以使用docker -version查看版本,如果出现版本号则下载成功:
也可以通过宝塔等软件自行启动docker管理器验证
systemctl start docker.service
systemctl enable docker.service
如果启动docker报错 AttributeError: ‘NoneType‘ object has no attribute xxxx,可以尝试上面的命令。
2.下载maven并配置环境变量
访问maven官网:https://maven.apache.org/download.cgi
下载压缩包,下载第一个就行,后缀为tar.gz的
mkdir /usr/local/maven(先创建maven文件夹)
cd /usr/loacl/maven(进入文件夹)
再把上传到服务器上,这里我用的Xftp,可以自行抉择
解压
tar -zxvf apache-maven-3.9.3-bin.tar.gz
添加阿里云镜像,修改/usr/local/maven/apache-maven-3.9.3/conf目录下的settings.xml,在mirrors节点下添加
<mirror>
<id>aliyun-maven</id>
<mirrorOf>*</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
配置环境变量
打开环境变量vim /etc/profile,添加如下内容:(vim不可用可以用vi),i键编辑
MAVEN_HOME=/usr/local/maven/apache-maven-3.9.3
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
保存并重启
:wq(vim中的保存并退出)
source /etc/profile
mvn -v来验证,出现下图代表成功
注:如果没有JAVA环境,可能会报错,安装Java环境就ok
3.将spring boot项目打包
这里说明使用idea打包,其余的方式可以自行搜索
点开右上角的maven标识
此时经过maven的编译打包,即可在我们项目路径的target目录下生成不包含依赖的项目jar包。
4.编写Dockerfile文件
新建一个名为Dockerfile的文件,注意没有后缀名
# 镜像java版本,你可以看着项目里的pom.xml文件确定
FROM openjdk:17
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar
ADD demo-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
# 容器启动命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ,注意:这里的包名要和pom文件中的包名一致,后面的app,jar可以自己取
5.docker!启动!
将SpringBoot的jar包和Dockerfile文件一起放在linux系统下任意一个目录下
比如:
在这个文件夹目录下执行以下命令,将生成镜像
docker build . -t app 注意app是前面自己起的名字
查看镜像
docker images
启动docker
docker run -d --name app8080 -p 8080:8080 app
这时已经启动了,可以用下面的命令来看springboot的日志
docker logs 镜像名
附:docker常用命令
启动docker
systemctl start docker
关闭docker
systemctl stop docker
重启docker
systemctl restart docker
设置docker开机自启动
systemctl enable docker
查看docker运行状态
systemctl status docker
查看docker镜像列表
docker images
拉取镜像
docker pull 镜像名 (pull最新版本)
docker pull 镜像名:tag (tag为版本号)
删除一个镜像
docker rmi -f 镜像名/镜像ID
删除多个镜像 其镜像ID或镜像用用空格隔开即可
docker rmi -f 镜像名/镜像ID 镜像名/镜像ID 镜像名/镜像ID
强制删除
docker image rm 镜像名称/镜像ID
查看正在运行的容器
docker ps
查看所有容器包括正在运行和停掉的容器
docker ps -a
运行一个容器
# -it 表示与容器进行交互式启动 -d 表示可后台运行容器 (守护式运行) --name 给要运行的容器 起的名字 /bin/bash 交互路径
docker run -it -d --name 要取的别名 镜像名:Tag /bin/bash