docker部署springboot项目

Docker部署springboot项目

目录

一 spring boot 应用发布到 docker 2

1.     上传已打包好的jar包,即应用程序... 2

2.创建dockerfile文件... 2

2.     编辑dockerfile 文件... 3

二 在dockerfile和jar包的上级目录执行... 3

1.     构建镜像... 3

2.     用docker images命令查看... 6

3.用docker run 运行容器... 6

4 docker  ps查看容器及端口映射... 6

5     查看端口是否监听成功  netstat -lntp 端口... 7

三 浏览器中访问,看外部是否可访问正确与否... 7

1.     查看容器详细信息... 7

2 Docker停止容器... 8

3 查看所有容器... 8

4 删除容器... 8

5 删除镜像... 9

四 压缩保存到本地... 9

1 压缩文件或文件夹... 9

2传到远程服务器... 10

五 保存镜像... 10

1.镜像上传... 10

2 加载镜像... 11

3 查看镜像... 11

4 为镜像打标签... 11

六.Dockerfile指定用户运行... 15

七 Docker导入、导出、删除容器... 16

1  导出某个容器... 16

2 导入某个容器... 17

3 镜像保存/载入... 17

4 容器导入/导出... 17

5删除容器... 18

八 Docker部署swagger 18

1.Swagger的作用... 18

2.官网的解释... 18

3.自己理解... 19

4.为什么部署... 19

5 .环境... 19

6. 下载镜像... 19

7. 保存到本地... 20

8. 上传到远程服务器... 21

9. 加载... 21

10. 运行镜像... 21

九 浏览器中访问查看... 22

1 修改swagger.json. 22

2 配置swagger-ui界面... 24

3 运行swagger-ui容器页面... 24

4 浏览器访问... 24

 

 

一 spring boot 应用发布到 docker

网址:https://blog.csdn.net/anxpp/article/details/73478883

  1. 上传已打包好的jar包,即应用程序

 

2.创建dockerfile文件  

touch  dockerfile

  1. 编辑dockerfile 文件  

vim dockerfile

 

[telecom@CNA-82-19 springboot]$ vim dockerfile

 

FROM 120.110.119.110:1108/library/java:8u_112

MAINTAINER gdeop

VOLUME /tmp

ARG user=yan

ARG user_id=1102

ARG user_group=1102

ENV USER=${user} \

    USER_ID=${user_id} \

    USER_GROUP=${user_group} \

    LOG_PATH=/data/gdeop/springboot \

    TERM=xterm

#时区设置

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

 

RUN mkdir -p /data/gdeop/springboot && rm -rf /data/gdeop/springboot  && groupadd -g ${USER_GROUP} ${USER} && useradd -u ${USER_ID} -g ${USER_GROUP} -d /data/gdeop/springboot ${USER}

RUN mkdir -p ${LOG_PATH} && chmod a+x /data/gdeop/springboot/ && chown -R ${USER_ID}:${USER_GROUP} ${LOG_PATH} /data/gdeop/springboot/

USER ${USER}

#指定工作目录

WORKDIR /data/gdeop/springboot

 

ENV LANG=en_US.UTF-8

ENV TZ=Asia/Shanghai

COPY api-info2018122916408611-0.0.1-SNAPSHOT.jar /data/gdeop/springboot/api-info/

ENTRYPOINT ["java" ,"-jar","/data/gdeop/springboot/api-info/api-info2018122916408611-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]

 

注意:dockerfile和jar包必须在同一级目录,否则失败

二 在dockerfile和jar包的上级目录执行

  1. 构建镜像

docker build -t 创建者/镜像名:版本号(自定义) .

如果出现以下情况,检查dockerfile是否写对

 

在执行docker build -t tele/apiinfo2018101016158611:1.1.1 . 命令

 

一种:构建镜像的dockerfile文件及所放的位置要注意的事项:

 

二种:打包的jar包直接放在dockerfile同目录,少一个放jar包的目录  如图:

 

[telecom@CNA-82-19 register-server]$ ls

dockerfile  register-server-0.0.1-SNAPSHOT-201809300853.jar

[telecom@CNA-82-19 register-server]$ vim dockerfile

FROM java:1.8.171

MAINTAINER tele

VOLUME /tmp

COPY register-server-0.0.1-SNAPSHOT-201809300853.jar /data/telecom/springboot/register-server/

ENTRYPOINT ["java" ,"-jar","/data/telecom/springboot/register-server/register-server-0.0.1-SNAPSHOT-201809300853.jar"]

即正确

如下图所示

  1. 用docker images命令查看

 

3.用docker run 运行容器  

看端口映射容器是否成功及是否可以正确访问

docker run -d -p 1101:1101 --name apiinfo2018101017108612 tele/apiinfo2018101016158611:1.1.1

4 docker  ps查看容器及端口映射

 

端口映射成功

查看端口是否监听成功  netstat -lntp 端口

三 浏览器中访问,看外部是否可访问正确与否

容器所在服务器IP+容器映射本地端口+项目访问路径

 

  1. 查看容器详细信息

docker  inspect  容器id

2 Docker停止容器

  docker stop 容器id

 

3 查看所有容器

4 删除容器

docker rm 容器id

 

5 删除镜像

docker rmi 镜像id

 

 

四 压缩保存到本地

1 压缩文件或文件夹

tar zcvf springboot.tar.gz springboot

 

2传到远程服务器

五 保存镜像

1.镜像上传

Docker save 保存的镜像,上传到服务器

2 加载镜像

在用docker  load加载镜像 docker load < /data/gdeop/img/centos7.2.2.tar

Docker load < /存镜像的路径/镜像文件(名)

 

3 查看镜像

Docker  images

 

4 为镜像打标签

镜像无标签名,用 docker tag 镜像id  镜像名:版本号(自定义)

docker tag 49f7960eb7e4 centos:7.2.2

docker tag 324b8e08f947 java:1.8.1

 

4.1 保存镜像

Docker保存镜像docker save -o 镜像名(自定义) 镜像名

docker save -o /data/telecom/saveimg/monitoragentd2018101523508631:1.2.tar tele/monitoragentd2018101523508631

4,2 上传镜像到远程

从132.121.117.241传到132.121.117.242中

 

4.3 加载

在用docker load加载镜像

4.4 镜像实例(运行容器)

运行容器成功

4.5 浏览器范问成功

 

 

4.6将本地目录拷贝到远程

scp -r 目录名 用户名@计算机IP或者计算机名称:远程路径

scp -r /data/telecom/saveimg/apicenter201810129268622:1.2.tar telecom@110.121.120.119:/data/telecom/saveimg/

从远程将目录拷回本地:

scp -r 用户名@计算机IP或者计算机名称:目录名 本地路径

 

docker容器的备份、恢复、迁移

一 容器的备份

  1. 第一种 docker commit -p 容器id 容器备份的名字

 

例如:

docker commit -p 622a4c92eac0 container-backup

看是否备份成功,备份后即镜像,用docker images查看

 

六.Dockerfile指定用户运行

Dockerfile文件springboot项目

Dockerfile:

FROM 120.110.119.110:1108/library/java:8u_112

MAINTAINER gdeop

VOLUME /tmp

ARG user=yan

ARG user_id=1102

ARG user_group=1102

ENV USER=${user} \

    USER_ID=${user_id} \

    USER_GROUP=${user_group} \

    LOG_PATH=/data/gdeop/springboot \

    TERM=xterm

#时区设置

RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone

 

RUN mkdir -p /data/gdeop/springboot && rm -rf /data/gdeop/springboot  && groupadd -g ${USER_GROUP} ${USER} && useradd -u ${USER_ID} -g ${USER_GROUP} -d /data/gdeop/springboot ${USER}

RUN mkdir -p ${LOG_PATH} && chmod a+x /data/gdeop/springboot/ && chown -R ${USER_ID}:${USER_GROUP} ${LOG_PATH} /data/gdeop/springboot/

USER ${USER}

#指定工作目录

WORKDIR /data/gdeop/springboot

 

ENV LANG=en_US.UTF-8

ENV TZ=Asia/Shanghai

COPY api-info2018122916408611-0.0.1-SNAPSHOT.jar /data/gdeop/springboot/api-info/

ENTRYPOINT ["java" ,"-jar","/data/gdeop/springboot/api-info/api-info2018122916408611-0.0.1-SNAPSHOT.jar","--spring.profiles.active=prod"]

 

Docker导入、导出、删除容器

1  导出某个容器

导出某个容器,非常简单,使用docker export命令,语法:docker export container_id > 容器快照名

docker export 5e015d422cd6 > /data/gdeop/saveimg/monitoragentd20181017100286311.0.tar



导出后在本地可以看到有一个centos.tar的容器快照。

 

2 导入某个容器

docker import命令
有了容器快照之后,我们可以在想要的时候随时导入。导入快照使用docker import命令。

例如我们可以使用cat centos.tar | docker import - my/centos:v888 导入容器快照作为镜像
https://i-blog.csdnimg.cn/blog_migrate/fa15aeecebb4656e3b95c5c966ce5475.png
处理本地的容器快照导入为镜像,我们还可以通过指定一个URL或者目录来导入。
例如在某个网络上有个快照image_test.tgz:docker import http://xxxx.com/image_test.tgz test/image_test

3 镜像保存/载入

docker load/docker save;将一个镜像导出为文件,再使用docker load命令将文件导入为一个镜像,会保存该镜像的的所有历史记录。比docker export命令导出的文件大,很好理解,因为会保存镜像的所有历史记录。

4 容器导入/导出

docker import/docker export;将一个容器导出为文件,再使用docker import命令将容器导入成为一个新的镜像,但是相比docker save命令,容器文件会丢失所有元数据和历史记录,仅保存容器当时的状态,相当于虚拟机快照。

5删除容器


可以使用"docker rm 容器id"来删除一个终止状态的容器;若要删除一个运行中的容器,需要加-f参数。
https://i-blog.csdnimg.cn/blog_migrate/1804b6a21e60a2f725deb397bbb7d205.png

八 Docker部署swagger

1.Swagger的作用

在docker中部署swagger。对于swagger自己进行后端开发可以用来管理接口,我们写的方法都会在swagger中显示出来,我们也可以在swagger上进行测试。

2.官网的解释

Swagger是面向OpenAPI规范(OAS)的API开发人员工具的世界上最大的框架,可以在整个API生命周期中进行开发,从设计和文档到测试和部署。

3.自己理解

我们开发的契约,当前端和后端分离的时候,我们依据swagger上提供的api进行开发,我们共同遵循这同一个契约。利用在线的swagger我们只需要一个json文件,或xml文件加上swagger自己封装的接口我们就可以模拟真实的功能。

4.为什么部署

      why?为什么要本地部署呢?最近做项目网络总是不给力,一个页面要加载好长时间,于是我们项目组长先发制人要大家本地的swagger。

5 .环境

运行docker容器的服务器

6. 下载镜像

下载所需要的镜像,这些不是必要的操作,方便我们之后的查看。

docker pull swaggerapi/swagger-ui

docker pull swaggerapi/swagger-editor

引入项目

  官网上有本地搭建服务器的文件,我们可以拿下来直接用,这是链接:https://github.com/swagger-api/swagger-ui,我们将整个文件夹拉到服务器上。

 

7. 保存到本地

 

8. 上传到远程服务器

9. 加载

 

10. 运行镜像

运行swaggerapi-swagger-editor镜像

docker run -d --name swagger-editor8088 -m 4096m --memory-swap=4096m  -p 8088:8080 swaggerapi/swagger-editor:latest 

九 浏览器中访问查看

1 修改swagger.json

出现界面后,可以编辑,然后点击file文件下载到本地 修改成swagger.json在上传到远程服务器

 

 

2 配置swagger-ui界面

 

3 运行swagger-ui容器页面

docker run -p 8089:8080 -e SWAGGER_JSON=/foo/swagger.json -v /data/telecom/saveimg:/foo swaggerapi/swagger-ui:latest

4 浏览器访问

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值