加载中...

Docker部署Springboot项目


首先:我是参考着几篇博客:

https://blog.csdn.net/hangao233/article/details/104395693
https://www.jianshu.com/p/397929dbc27d

第一步:先在虚拟机或服务器上安装docker服务

要安装Docker Engine,您需要CentOS 7或8的维护版本。不支持或未测试存档版本。

1,卸载旧版本

sudo yum remove docker \
                  docker-client \
                  docker-client-latest \
                  docker-common \
                  docker-latest \
                  docker-latest-logrotate \
                  docker-logrotate \
                  docker-engine

yum报告没有安装这些软件包就可以了。

2,安装docker软件包

sudo yum install -y yum-utils

3,设置镜像仓库地址

# 默认是国外的
sudo yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
    
# 换成阿里云镜像地址
sudo yum-config-manager \
    --add-repo \
    http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

4,安装最新版Docker Engine容器

安装前建议先将将服务器上的软件包信息现在本地缓存,以提高安装软件的速度

sudo yum makecache fast


# docker-ce社区版(docker-ee企业版)
sudo yum install docker-ce docker-ce-cli containerd.io

安装完成后,Docker只安装但并未启动

5,启动Docker

sudo systemctl start docker

然后可用docker version命令测试Docker是否安装成功,并查看Docker的版本信息

第二步:使用Docker安装mysql:5.7

1可以先在docker hub上查找mysql的镜像

docker search mysql

2,我这次安装的mysql:5.7

所以直接从docker hub上拉取mysql:5.7

docker pull mysql:5.7

3,运行mysql

运行容器,需要做数据挂载! #安装启动MySQL,需要配置密码,这是要注意点!
官方测试:docker run —name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
启动:
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
—name 容器名字

docker run -d -p 3306:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql0 mysql:5.7

4,查看容器是否创建成功

docker  ps 命令
      #列出当前正在运行的容器
-a    #列出当前正在运行的容器+带出历史运行过的容器
-n=?  #显示最近创建的容器
-q    #只显示容器的编号

docker ps

有个命令,可以进入容器内部,ctrl+p+q可以以后台运行的方式退出这个软件

docker exec -it 容器的id /bin/bash

5,使用navicat连接服务器或虚拟机上的mysql

6,可以使用navicat提供的工具进行数据的传输

然后可以看到数据已经传输成功:

第三步:将springboot项目打包

1.准备springboot项目并进行打包

打包成功会看到出现一个target的目录,里面的jar包就是我们刚刚打包好的

然后对yml文件进行编辑:

2.编写DockerFile文件

在idea的插件市场搜索docker,并安装

然后在根目录下新建一个Dockerfile的文件:

如果显示是这样的说明docker那个插件下载安装成功,然后编写Dockerfile文件:

FROM            #基础镜像,一切从这里开始构建。
MAINTAINER      #镜像是谁写的,姓名+邮箱
RUN             #镜像构建的时候需要运行的命令
ADD             #步骤:tomcat镜像,这个tomcat压缩包!添加内容
WORKDIR         #镜像的工作目录
VOLUME          #挂载的目录
EXPOST          #保留端口配置
CMD             #指定这个容器启动的时候要运行的命令,只有一个会生效,可被替代。
ENTRYPOINT      #指定这个容器启动的时候要运行的命令,可以追加命令。
ONBUILD         #当构建一个被集成DockerFile这个时候就会运行ONBUILD的指令。触发指令。
COPY            #类似ADD,将我们文件拷贝到镜像中。
ENV             #构建的时候设置环境变量。

3.构建镜像

使用xftp将刚才打包的jar包还有编写的Dockerfile文件上传到虚拟机或是服务器

然后使用命令构建镜像:

[root@localhost project] ls
Dockerfile  onlineExam-0.0.1-SNAPSHOT.jar

[root@localhost project] docker build -t onlineexam .
Sending build context to Docker daemon  16.55MB
Step 1/5 : FROM java:8
8: Pulling from library/java
5040bd298390: Pull complete 
fce5728aad85: Pull complete 
76610ec20bf5: Pull complete 
60170fec2151: Pull complete 
e98f73de8f0d: Pull complete 
11f7af24ed9c: Pull complete 
49e2d6393f32: Pull complete 
bb9cdec9c7f3: Pull complete 
Digest: sha256:c1ff613e8ba25833d2e1940da0940c3824f03f802c449f3d1815a66b7f8c0e9d
Status: Downloaded newer image for java:8
 ---> d23bdf5b1b1b
Step 2/5 : COPY *.jar /app.jar
 ---> 63fda5bdcb6d
Step 3/5 : CMD ["--server.port=8888"]
 ---> Running in 5e94d333492d
Removing intermediate container 5e94d333492d
 ---> 59bd2f4e0120
Step 4/5 : EXPOSE 8888
 ---> Running in 99c4427313de
Removing intermediate container 99c4427313de
 ---> d4792bf4f884
Step 5/5 : ENTRYPOINT ["java","-jar","/app.jar"]
 ---> Running in da3be5f92a55
Removing intermediate container da3be5f92a55
 ---> 2df101d6382c
Successfully built a42985afa2f3
Successfully tagged onlineexam:latest


然后可以使用docker images 展示刚刚构建好的镜像

4.启动容器

[root@localhost project] docker run -d -p 8888:8888 onlineexam

-d参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8888端口映射到容器中的8888(项目中端口配置的是8888)端口

然后使用docker ps查看一下:

ok,到此启动成功了!
由于我此此的springboot项目使用了redis。你们可以选择使用docker安装,还可以参考一下我的这个centos 7安装redis

第四步:测试

因为我springboot使用了swagger(现在是knife4j),所以我在浏览器测试是否可以打开:

ok,测试一下功能都ok了。
到此就结束了。


作者: 成大事
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 成大事 !
评论
  目录