【docker】docker部署spring boot項目在服務器上

IDE:ideahtml

工具:dockerjava

spring boot:2.0.1mysql

========================================linux

簡單記錄一下流程,以供參考:git

第一步:首先得有一個spring boot的項目【集成了jpa+mybatis的spring boot 例子:https://github.com/AngelSXD/swappinggithub

第二步:項目打包爲jar包web

install成功之後spring

找到項目根目錄下的target目錄,這裏面的jar就是打包好能夠部署的jar包sql

 

第三步:準備服務器和其餘的環境,例如mysql數據庫,dockerdocker

  進入服務器,【centOS7上安裝docker步驟:http://www.javashuo.com/article/p-fkwyppsi-ba.html】 

  若是你想在服務器上安裝mysql,步驟以下:【http://www.javashuo.com/article/p-bumtqjbk-k.html

  【固然,你打包的jar包中,配置文件中鏈接的數據庫的地址須要是你mysql的實際地址,不然數據庫鏈接不上】

 

 

第四步:準備服務器上的jar包存放目錄以及Dockerfile文件

  進入服務器,建立你jar包上傳到服務器要放的目錄,例如:【在linux上建立目錄的命令本身查!!】

  我要將jar包即將放在這個目錄下:

  而且在本目錄下建立Dockerfile文件,而且將下面這段粘貼在Dockerfile文件中【使用vi命令便可完成文件的建立以及文件內容的填充】

 
 

FROM java:8
VOLUME /temp
ADD swapping.jar swapping.jar
RUN bash -c 'touch /swapping.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]

 

對於文件內容的解釋:【Dockerfile命令解釋:http://www.docker.org.cn/dockerppt/114.html

 

FROM java:8

指定要構建的spring boot服務鏡像的基礎源鏡像是java,版本是8;若是本地沒有java:8的鏡像,就會從dockerHub下載。通常首次下載,之後就不會下載了。
VOLUME /temp

VOLUME 指向了容器內的/tmp的目錄,因爲 Spring Boot 使用內置的Tomcat容器,Tomcat 默認使用/tmp做爲工做目錄。這個命令的效果是:在宿主機的/var/lib/docker目錄下建立一個臨時文件並把它連接到容器中的/tmp目錄

VOLUME 命令只能指定掛載點,也就是說在此處,只能指定容器內的目錄,不能指定宿主機上對應的目錄,也就是說是宿主機上自動生成的目錄 去掛載了 容器內的指定的/tmp目錄!!!
若是想要指定宿主機的目錄去進行掛載,只能經過run命令中的 -v參數進行 宿主機的指定目錄 掛載 容器內的指定目錄
ADD swapping.jar swapping.jar

其實就是 ADD 【rz上傳上來的文件】 【要被拷貝到即將要構建的docker容器中的文件】
RUN bash -c 'touch /swapping.jar'

實際執行復制操做的命令
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","-Xmx1024m","-Xms1024m","/swapping.jar"]

ENTRYPOINT 配置容器啓動後執行的命令,而且不可被 docker run 提供的參數覆蓋。

-Djava.security.egd=file:/dev/./urandom
添加java.security.egd的系統屬性指向/dev/urandom,JVM上的隨機數與熵池策略
參考地址:【https://blog.csdn.net/lanmo555/article/details/51909021】

 

第五步:上傳jar包

先修改jar包名字:修改成swapping.jar【文件名須要與Dockerfile文件中配置的一致】

 

  使用命令

rz

便可完成jar包上傳

 

 

注意,

#Dockerfile和jar包放在同一個目錄下

 

 

 

第六步:須要進入jar包所在目錄,使用jar包建立鏡像

  命令以下:【注意有點哦】

docker build -t swapping .

 

 

 

 第七步:運行鏡像,啓動docker容器

  最簡單的運行命令

docker run --name swapping -itd --net=host  swapping 

  須要注意spring boot項目的時區問題的啓動命令【關於時區處理問題,須要參考:http://www.javashuo.com/article/p-orubytkd-ba.html

  須要注意spring boot項目啓動開發配置文件和生產配置文件的配置文件的啓動應用【http://www.javashuo.com/article/p-wiyctqwe-bd.html

docker run --name swapping -itd --net=host -v /etc/localtime:/etc/localtime:ro  -v /etc/timezone:/etc/timezone:ro  swapping

 

  啓動成功後:查看容器啓動狀況

docker logs -f swapping

退出日誌查看 使用

Ctrl+Z

 

查看啓動運行日誌以下:

root@wj:/soft/java/dockerJar/swapping# docker logs -f swapping

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v2.0.1.RELEASE)

2018-12-03 10:25:38.055  INFO 1 --- [           main] com.sxd.swapping.SwappingApplication     : Starting SwappingApplication v0.0.1-SNAPSHOT on wj.luna.base with PID 1 (/swapping.jar started by root in /)
2018-12-03 10:25:38.060  INFO 1 --- [           main] com.sxd.swapping.SwappingApplication     : No active profile set, falling back to default profiles: default
2018-12-03 10:25:38.257  INFO 1 --- [           main] ConfigServletWebServerApplicationContext : Refreshing org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1ef7fe8e: startup date [Mon Dec 03 10:25:38 CST 2018]; root of context hierarchy
2018-12-03 10:25:41.232  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2018-12-03 10:25:41.429  INFO 1 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode!
2018-12-03 10:25:41.452  INFO 1 --- [           main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.sxd.swapping.dao.jpa.GoodsStockDao.
2018-12-03 10:25:41.455  INFO 1 --- [           main] .RepositoryConfigurationExtensionSupport : Spring Data Redis - Could not safely identify store assignment for repository candidate interface com.sxd.swapping.dao.jpa.HuaYangAreaDao.
2018-12-03 10:25:42.341  INFO 1 --- [           main] trationDelegate$BeanPostProcessorChecker : Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$3b883049] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
2018-12-03 10:25:43.196  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 9666 (http)
2018-12-03 10:25:43.243  INFO 1 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2018-12-03 10:25:43.243  INFO 1 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet Engine: Apache Tomcat/8.5.29
2018-12-03 10:25:43.270  INFO 1 --- [ost-startStop-1] o.a.catalina.core.AprLifecycleListener   : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: [/usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib]
2018-12-03 10:25:43.528  INFO 1 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2018-12-03 10:25:43.529  INFO 1 --- [ost-startStop-1] o.s.web.context.ContextLoader            : Root WebApplicationContext: initialization completed in 5277 ms
2018-12-03 10:25:44.010  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet statViewServlet mapped to [/druid/*]
2018-12-03 10:25:44.013  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean  : Servlet dispatcherServlet mapped to [/]
2018-12-03 10:25:44.020  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'characterEncodingFilter' to: [/*]
2018-12-03 10:25:44.020  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'hiddenHttpMethodFilter' to: [/*]
2018-12-03 10:25:44.021  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'httpPutFormContentFilter' to: [/*]
2018-12-03 10:25:44.021  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'requestContextFilter' to: [/*]
2018-12-03 10:25:44.021  INFO 1 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean   : Mapping filter: 'webStatFilter' to urls: [/*]
2018-12-03 10:25:44.616  INFO 1 --- [           main] j.LocalContainerEntityManagerFactoryBean : Building JPA container EntityManagerFactory for persistence unit 'default'
2018-12-03 10:25:44.664  INFO 1 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [
    name: default
    ...]
2018-12-03 10:25:44.874  INFO 1 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate Core {5.2.16.Final}
2018-12-03 10:25:44.878  INFO 1 --- [           main] org.hibernate.cfg.Environment            : HHH000206: hibernate.properties not found
2018-12-03 10:25:44.982  INFO 1 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.0.1.Final}
DEBUG - {conn-10001} connected
DEBUG - {conn-10002} connected
DEBUG - {conn-10003} connected
DEBUG - {conn-10004} connected
DEBUG - {conn-10005} connected
2018-12-03 10:25:45.859  INFO 1 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
DEBUG - {conn-10005} pool-connect
2018-12-03 10:25:45.890  INFO 1 --- [           main] org.hibernate.dialect.Dialect            : HHH000400: Using dialect: org.hibernate.dialect.MySQL55Dialect
DEBUG - {conn-10005} pool-recycle
DEBUG - {conn-10005} pool-connect
DEBUG - {conn-10005} pool-recycle
2018-12-03 10:25:46.948  INFO 1 --- [           main] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default'
2018-12-03 10:25:47.626  INFO 1 --- [           main] o.h.h.i.QueryTranslatorFactoryInitiator  : HHH000397: Using ASTQueryTranslatorFactory
2018-12-03 10:25:50.730  WARN 1 --- [           main] aWebConfiguration$JpaWebMvcConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning
2018-12-03 10:25:50.872  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayang/pages],methods=[GET]}" onto public com.sxd.swapping.base.PageResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithJPA.pages(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.874  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayang],methods=[POST]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithJPA.huayang(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.874  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayang/huayangs],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.List<com.sxd.swapping.domain.HuaYangArea>> com.sxd.swapping.controller.HuaYangApiWithJPA.huayangs(java.lang.String)
2018-12-03 10:25:50.875  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayang/updates],methods=[POST]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.List<com.sxd.swapping.domain.HuaYangArea>> com.sxd.swapping.controller.HuaYangApiWithJPA.updates(com.sxd.swapping.base.BatchBean)
2018-12-03 10:25:50.875  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayang/update],methods=[PUT]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithJPA.update(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.895  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/oneHuaYang],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findOne(java.lang.String)
2018-12-03 10:25:50.900  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/findMap],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.Map<java.lang.String, java.lang.String>> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findMap(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.900  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/findBy3],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.List<com.sxd.swapping.base.HuaYangModelBean>> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findByNameAndPersonAndCreateDate(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.901  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/findBy3Page],methods=[GET]}" onto public com.sxd.swapping.base.PageResponse<com.sxd.swapping.base.HuaYangModelBean> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findByNameAndPersonAndCreateDatePage(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.902  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/findByNameLike],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.List<com.sxd.swapping.domain.HuaYangArea>> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findAll1(java.lang.String)
2018-12-03 10:25:50.904  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/findByNameLike2],methods=[GET]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.List<com.sxd.swapping.domain.HuaYangArea>> com.sxd.swapping.controller.HuaYangApiWithMyBatis.findAll2(java.lang.String)
2018-12-03 10:25:50.912  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/oneHuaYang],methods=[DELETE]}" onto public com.sxd.swapping.base.UniVerResponse<java.lang.String> com.sxd.swapping.controller.HuaYangApiWithMyBatis.deleteOne(java.lang.Long)
2018-12-03 10:25:50.913  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/update],methods=[PUT]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithMyBatis.update(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.913  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/huayangMybatis/insert],methods=[POST]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.HuaYangArea> com.sxd.swapping.controller.HuaYangApiWithMyBatis.insert(com.sxd.swapping.domain.HuaYangArea)
2018-12-03 10:25:50.914  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/goods/stock/concurrentStock],methods=[POST]}" onto public com.sxd.swapping.base.UniVerResponse<java.util.Map<java.lang.Integer, java.lang.String>> com.sxd.swapping.controller.GoodsStockController.concurrentStock(com.sxd.swapping.domain.GoodsStock)
2018-12-03 10:25:50.917  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/goods/stock/insert],methods=[POST]}" onto public com.sxd.swapping.base.UniVerResponse<com.sxd.swapping.domain.GoodsStock> com.sxd.swapping.controller.GoodsStockController.insert(com.sxd.swapping.domain.GoodsStock)
2018-12-03 10:25:50.919  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/createCode/getCode]}" onto public com.sxd.swapping.base.UniVerResponse<java.lang.String> com.sxd.swapping.controller.CreateCodeController.createCode()
2018-12-03 10:25:50.927  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources/configuration/ui]}" onto public org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.UiConfiguration> springfox.documentation.swagger.web.ApiResourceController.uiConfiguration()
2018-12-03 10:25:50.934  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources/configuration/security]}" onto public org.springframework.http.ResponseEntity<springfox.documentation.swagger.web.SecurityConfiguration> springfox.documentation.swagger.web.ApiResourceController.securityConfiguration()
2018-12-03 10:25:50.935  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/swagger-resources]}" onto public org.springframework.http.ResponseEntity<java.util.List<springfox.documentation.swagger.web.SwaggerResource>> springfox.documentation.swagger.web.ApiResourceController.swaggerResources()
2018-12-03 10:25:50.941  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)
2018-12-03 10:25:50.942  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.servlet.error.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
2018-12-03 10:25:51.332  INFO 1 --- [           main] pertySourcedRequestMappingHandlerMapping : Mapped URL path [/v2/api-docs] onto method [public org.springframework.http.ResponseEntity<springfox.documentation.spring.web.json.Json> springfox.documentation.swagger2.web.Swagger2Controller.getDocumentation(java.lang.String,javax.servlet.http.HttpServletRequest)]
2018-12-03 10:25:51.590  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-12-03 10:25:52.093  INFO 1 --- [           main] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1ef7fe8e: startup date [Mon Dec 03 10:25:38 CST 2018]; root of context hierarchy
2018-12-03 10:25:52.297  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-12-03 10:25:52.298  INFO 1 --- [           main] o.s.w.s.handler.SimpleUrlHandlerMapping  : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
2018-12-03 10:25:52.321  INFO 1 --- [           main] .m.m.a.ExceptionHandlerExceptionResolver : Detected @ExceptionHandler methods in myControllerAdvice
2018-12-03 10:25:53.431  INFO 1 --- [           main] o.s.ui.freemarker.SpringTemplateLoader   : SpringTemplateLoader for FreeMarker: using resource loader [org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@1ef7fe8e: startup date [Mon Dec 03 10:25:38 CST 2018]; root of context hierarchy] and template loader path [classpath:/templates/]
2018-12-03 10:25:53.432  INFO 1 --- [           main] o.s.w.s.v.f.FreeMarkerConfigurer         : ClassTemplateLoader for Spring macros added to FreeMarker configuration
2018-12-03 10:25:53.485  WARN 1 --- [           main] o.s.b.a.f.FreeMarkerAutoConfiguration    : Cannot find template location(s): [classpath:/templates/] (please add some templates, check your FreeMarker configuration, or set spring.freemarker.checkTemplateLocation=false)
2018-12-03 10:25:53.998  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Registering beans for JMX exposure on startup
2018-12-03 10:25:54.001  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Bean with name 'dataSource' has been autodetected for JMX exposure
2018-12-03 10:25:54.018  INFO 1 --- [           main] o.s.j.e.a.AnnotationMBeanExporter        : Located MBean 'dataSource': registering with JMX server as MBean [com.alibaba.druid.pool:name=dataSource,type=DruidDataSource]
2018-12-03 10:25:54.031  INFO 1 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 2147483647
2018-12-03 10:25:54.031  INFO 1 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Context refreshed
2018-12-03 10:25:54.070  INFO 1 --- [           main] d.s.w.p.DocumentationPluginsBootstrapper : Found 1 custom documentation plugin(s)
2018-12-03 10:25:54.164  INFO 1 --- [           main] s.d.s.w.s.ApiListingReferenceScanner     : Scanning for api listing references
2018-12-03 10:25:54.802  INFO 1 --- [           main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: insertUsingPOST_1
2018-12-03 10:25:54.806  INFO 1 --- [           main] .d.s.w.r.o.CachingOperationNameGenerator : Generating unique operation named: updateUsingPUT_1
2018-12-03 10:25:54.944  INFO 1 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat started on port(s): 9666 (http) with context path ''
2018-12-03 10:25:54.969  INFO 1 --- [           main] com.sxd.swapping.SwappingApplication     : Started SwappingApplication in 17.782 seconds (JVM running for 18.811)
View Code

能夠看到啓動成功了。

 

 

第八步:訪問服務看是否正常

接口返回正常

 

數據庫存儲正常

 

好了,服務部署完成拉!!!!!

 

 

OK,若是想要從新啓動spring boot服務,可使用命令

docker restart swapping

 

ok如今,若是代碼更新了,想要中止服務,移除springboot服務,從新部署

分別執行以下步驟便可

中止服務

docker stop swapping

移除容器

docker rm -f swapping

 

移除jar包

rm -f swapping.jar

從新打包【在idea操做,注意配置文件中的鏈接地址等配置】

【而且注意Dockerfile文件中指定的jar包文件名,須要與上傳的jar包文件名一致】

上傳jar包

rz

 

而後從新制做鏡像

docker build -t swapping .

啓動服務

docker run --name swapping -itd --net=host -v /etc/localtime:/etc/localtime:ro  -v /etc/timezone:/etc/timezone:ro  swapping

 

便可完成從新部署!!!

 

固然,你以前構建的鏡像文件依舊存在,雖然它不影響你項目的使用,可是你的鏡像存在會佔據你服務器的空間

因此可使用命令,查看目前有哪些鏡像

docker images

可使用命令,刪除不用的鏡像文件

docker rmi 9d3ee8a877d3

相關文章
相關標籤/搜索