亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Spring Boot 打包上傳Docker 倉庫的詳細步驟

瀏覽:2日期:2023-12-01 10:02:03

重要提示:學習本文之前需要提前了解docker容器相關的知識,了解和熟練運用常用的docker操作命令,如果已經了解了docker容器相關的知識那我們就開搞吧!

以下是完成標題所述功能的大致步驟:

搭建docker鏡像倉庫

修改Spring Boot 配置文件添加docker倉庫配置,打包,上傳至docker 鏡像倉庫

從自己搭的docker鏡像倉庫拉取上傳的鏡像文件并運行

Step1 搭建docker鏡像私有倉庫

搭建docker鏡像倉庫我們需要依賴docker-registry工具 ,docker-registry是官方提供的工具,可以用于構建私有的鏡像倉庫。本文內容基于 docker-registry v2.x 版本 官方地址:https://docs.docker.com/registry/

1.拉取registry 鏡像文件

docker pull registry

2.啟動鏡像

$ docker run -d -p 5000:5000 -v /opt/data/registry:/var/lib/registry registry

-d:守護線程啟動-p:端口映射 宿主機的端口:容器的端口-v:數據卷把容器內的地址目錄映射到宿主機中/opt/data/registry就是宿主機中鏡像私有倉庫存放鏡像的位置registry 就是鏡像名

3.配置daemon.json文件加入,倉庫配置

vim /etc/docker/daemon.json

添加配置如下:

{ 'registry-mirrors': [ 'https://registry.docker-cn.com' ], 'insecure-registries': [ 'yourip:5000' ]}

在原來的daemon.json 文件添加 insecure-registries 節點配置,yourip :填寫你的虛擬機ip, 保存退出 重新加載配置文件和重新啟動docker

systemctl daemon-reloadsystemctl restart docker

4.測試把鏡像上傳到自己的鏡像倉庫,我們標記一個鏡像然后上傳的倉庫 使用 docker tag 命令:docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

docker tag ubuntu:latest 127.0.0.1:5000/ubuntu:latest

(這里測試上傳的鏡像不必和文中相同,你可以pull 一個 tomcat 鏡像然后上傳即可) 此時會生成一個標記的鏡像

docker image lsREPOSITORYTAG IMAGE ID CREATED VIRTUAL SIZEubuntu latest ba5877dc9bec6 weeks ago 192.7 MB127.0.0.1:5000/ubuntu:latest latest ba5877dc9bec6 weeks ago 192.7 MB

push 到私有倉庫

docker push 127.0.0.1:5000/ubuntu:latest

查看私有倉庫的鏡像(其實可以去啟動倉庫時掛載的目錄下看,本文可以到宿主機 /opt/data/registry 目錄下查看了上傳的鏡像文件)

curl 127.0.0.1:5000/v2/_catalog

把私有倉庫的鏡像pull 下來

docker pull 127.0.0.1:5000/ubuntu:latest

pull 下來沒問題那就說明鏡像倉庫已經搭建好了

Step 2 修改SpringBoot 配置文件添加docker倉庫配置,打包,上傳至docker 鏡像倉庫

在配置SpringBoot項目之前,還需要對docker 容器做一些配置,才能把jar包上傳到倉庫

開啟docker遠程api,修改文件,

vim /lib/systemd/system/docker.service

原來ExecStart :ExecStart=/usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

添加**-H tcp://0.0.0.0:2375**

修改后:ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375 -H fd:// --containerd=/run/containerd/containerd.sock

(如果你使用的是阿里云服務器記得去出入規則那里打開2375這個端口哦!)

保存退出,重新加載配置和啟動docker

systemctl daemon-reload systemctl restart docker

查看配置是否成功,

docker -H 127.0.0.1 info

輸出如下就是配置成功:

Client:Debug Mode: false

Server:Containers: 5Running: 1Paused: 0Stopped: 4Images: 6Server Version: 19.03.3Storage Driver: overlay2.......

配置springboot 項目,pom文件添加打包配置如下

<plugin> <groupId>com.spotify</groupId> <artifactId>docker-maven-plugin</artifactId> <version>1.1.0</version> <executions><execution> <id>build-image</id> <phase>package</phase> <goals><goal>build</goal> </goals></execution> </executions> <configuration><imageName>jenkins_test/${project.artifactId}:${project.version}</imageName><dockerHost>http://yourip:2375</dockerHost><baseImage>java:8</baseImage><entryPoint>['java', '-jar','/${project.build.finalName}.jar']</entryPoint><resources> <resource><targetPath>/</targetPath><directory>${project.build.directory}</directory><include>${project.build.finalName}.jar</include> </resource></resources> </configuration></plugin> executions.execution.phase:此處配置了在maven打包應用時構建docker鏡像; imageName:用于指定鏡像名稱,jenkins_test是倉庫名稱,{project.version}為鏡像版本號; dockerHost:打包后上傳到的docker服務器地址; baseImage:該應用所依賴的基礎鏡像,此處為java; entryPoint:docker容器啟動時執行的命令; resources.resource.targetPath:將打包后的資源文件復制到該目錄; resources.resource.directory:需要復制的文件所在目錄,maven打包的應用jar包保存在target目錄下面; resources.resource.include:需要復制的文件,打包好的應用jar包。

配置好以上內容后就可以打包了,(正常的springboot maven 打包,或者idea mavenproject install 即可)

打包成功完成后,回到docker容器 查看鏡像倉庫

curl 127.0.0.1:5000/v2/_catalog

確認存在之后將上傳的鏡像拉取下來,拉取成功后查看鏡像列表

docker iamges

顯示如圖:

Spring Boot 打包上傳Docker 倉庫的詳細步驟

這樣就說明這一套操作成功了 ,首次打包可能比較慢 因為docker 要拉去一下 java :8 基礎鏡像

我們來啟動一下這個鏡像

docker run -p 8080:8080 imageid

-p:端口映射

啟動成功如圖:

Spring Boot 打包上傳Docker 倉庫的詳細步驟

因為springboot 項目的application.yml文件中配置的server.port 為8080.啟動的時候需要映射 8080:8080 第一個8080 是宿柱機的端口 第二個8080 是容器的端口

到此本文的所需要實現的都已經實現了,繼續閱讀有彩蛋哦?。。?!

在springboot 項目中有一個日志配置,如下

<?xml version='1.0' encoding='UTF-8'?><configuration debug='false'> <!--定義日志文件的存儲地址 勿在 LogBack 的配置中使用相對路徑--> <property name='LOG_HOME' value='/home/logs' /> <!-- 控制臺輸出 --> <appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder> </appender> <!-- 按照每天生成日志文件 --> <appender name='FILE' class='ch.qos.logback.core.rolling.RollingFileAppender'><rollingPolicy class='ch.qos.logback.core.rolling.TimeBasedRollingPolicy'> <!--日志文件輸出的文件名--> <FileNamePattern>${LOG_HOME}/TestWeb.log.%d{yyyy-MM-dd}.log</FileNamePattern> <!--日志文件保留天數--> <MaxHistory>30</MaxHistory></rollingPolicy><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級別從左顯示5個字符寬度%msg:日志消息,%n是換行符--> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern></encoder><!--日志文件最大的大小--><triggeringPolicy class='ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy'> <MaxFileSize>10MB</MaxFileSize></triggeringPolicy> </appender> <!-- 日志輸出級別 --> <root level='info'><appender-ref ref='STDOUT' /><appender-ref ref='FILE' /> </root></configuration>

我們要注意這個節點配置的logs 文件的保存地址

如果按照傳統的jar包部署方式,日志文件應該就在宿主機的 /home/logs 里面了但是現在我們發現都沒有這個目錄了,那問題出現在哪?日志文件輸出到哪了??我們進入啟動的springboot容器試一試,以交互形式進入一個已經在運行的容器內部

docker exec -it containerid bash

Spring Boot 打包上傳Docker 倉庫的詳細步驟

我們就看到里面有一個 home目錄,依次進入目錄我們會發現日志文件在這里了!

Spring Boot 打包上傳Docker 倉庫的詳細步驟

思考,我們前面不是使用到了數據卷的命令嘛,是否可以把容器內的路徑映射到虛擬機上?試試吧!停掉啟動的容器,(我們直接刪除吧)

docker stop containeriddocker rm containerid

重新啟動容器

docker run -d -p 8080:8080 -v /home/logs:/home/logs imageid

這次我們命令加了一個 -d 意思是守護線程啟動 (后臺運行) 使用如下命令 查看啟動的容器日志

docker logs -f containerID

Spring Boot 打包上傳Docker 倉庫的詳細步驟

可以看到,啟動成功了,那么 按理說 locback.xml 會在我們映射的宿主機的 /home/logs 目錄下輸出我們的日志文件,我們去看看 輸入一系列命令,可以看到日志文件真的在這里了!

Spring Boot 打包上傳Docker 倉庫的詳細步驟

到此這篇關于Spring Boot 打包上傳Docker 倉庫的詳細步驟的文章就介紹到這了,更多相關Spring Boot 打包上傳內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
主站蜘蛛池模板: 日韩欧美一区二区在线 | 国产精品人成在线播放新网站 | 亚洲影视一区二区 | 免费播放国产性色生活片 | 国产精品99久久99久久久看片 | 1024cao社区榴地址一地址二 | 亚洲国产成人久久三区 | 黄视频免费在线看 | 亚洲精品久久久久久下一站 | 在线播放另类 | 午夜亚洲 | 国产人妖性视频在线 | 一区二区三区免费视频观看 | 亚洲专区一区 | 色中文 | 国产成人免费午夜性视频 | 免费一级国产大片 | 国产区精品在线 | 一本一道波多野结衣一区二区 | 亚洲人成网国产最新在线 | 精品亚洲一区二区 | 日本无卡无吗中文免费 | 97起碰 | 久久ww精品w免费人成 | 任你干免费视频 | 日本高清aⅴ毛片免费 | 亚洲国产精品成人久久 | 免费的污网站 | 国产在线a不卡免费视频 | 亚洲色图国产 | 成人看的一级毛片 | 免费日本一区 | 日韩精品久久久久久久电影 | 精品一区二区久久 | 在线精品观看 | 韩国毛片在线观看 | 亚洲欧美日韩精品中文乱码 | 国产精品嫩草影院99av视频 | 免费毛片看 | 九一视频在线免费观看 | 51视频在线观看免费国产 |