日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

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

重要提示:學(xué)習(xí)本文之前需要提前了解docker容器相關(guān)的知識(shí),了解和熟練運(yùn)用常用的docker操作命令,如果已經(jīng)了解了docker容器相關(guān)的知識(shí)那我們就開搞吧!

以下是完成標(biāo)題所述功能的大致步驟:

搭建docker鏡像倉(cāng)庫(kù)

修改Spring Boot 配置文件添加docker倉(cāng)庫(kù)配置,打包,上傳至docker 鏡像倉(cāng)庫(kù)

從自己搭的docker鏡像倉(cāng)庫(kù)拉取上傳的鏡像文件并運(yùn)行

Step1 搭建docker鏡像私有倉(cāng)庫(kù)

搭建docker鏡像倉(cāng)庫(kù)我們需要依賴docker-registry工具 ,docker-registry是官方提供的工具,可以用于構(gòu)建私有的鏡像倉(cāng)庫(kù)。本文內(nèi)容基于 docker-registry v2.x 版本 官方地址:https://docs.docker.com/registry/

1.拉取registry 鏡像文件

docker pull registry

2.啟動(dòng)鏡像

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

-d:守護(hù)線程啟動(dòng)-p:端口映射 宿主機(jī)的端口:容器的端口-v:數(shù)據(jù)卷把容器內(nèi)的地址目錄映射到宿主機(jī)中/opt/data/registry就是宿主機(jī)中鏡像私有倉(cāng)庫(kù)存放鏡像的位置registry 就是鏡像名

3.配置daemon.json文件加入,倉(cāng)庫(kù)配置

vim /etc/docker/daemon.json

添加配置如下:

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

在原來(lái)的daemon.json 文件添加 insecure-registries 節(jié)點(diǎn)配置,yourip :填寫你的虛擬機(jī)ip, 保存退出 重新加載配置文件和重新啟動(dòng)docker

systemctl daemon-reloadsystemctl restart docker

4.測(cè)試把鏡像上傳到自己的鏡像倉(cāng)庫(kù),我們標(biāo)記一個(gè)鏡像然后上傳的倉(cāng)庫(kù) 使用 docker tag 命令:docker tag IMAGE[:TAG] [REGISTRY_HOST[:REGISTRY_PORT]/]REPOSITORY[:TAG]

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

(這里測(cè)試上傳的鏡像不必和文中相同,你可以pull 一個(gè) tomcat 鏡像然后上傳即可) 此時(shí)會(huì)生成一個(gè)標(biāo)記的鏡像

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 到私有倉(cāng)庫(kù)

docker push 127.0.0.1:5000/ubuntu:latest

查看私有倉(cāng)庫(kù)的鏡像(其實(shí)可以去啟動(dòng)倉(cāng)庫(kù)時(shí)掛載的目錄下看,本文可以到宿主機(jī) /opt/data/registry 目錄下查看了上傳的鏡像文件)

curl 127.0.0.1:5000/v2/_catalog

把私有倉(cāng)庫(kù)的鏡像pull 下來(lái)

docker pull 127.0.0.1:5000/ubuntu:latest

pull 下來(lái)沒(méi)問(wèn)題那就說(shuō)明鏡像倉(cāng)庫(kù)已經(jīng)搭建好了

Step 2 修改SpringBoot 配置文件添加docker倉(cāng)庫(kù)配置,打包,上傳至docker 鏡像倉(cāng)庫(kù)

在配置SpringBoot項(xiàng)目之前,還需要對(duì)docker 容器做一些配置,才能把jar包上傳到倉(cāng)庫(kù)

開啟docker遠(yuǎn)程api,修改文件,

vim /lib/systemd/system/docker.service

原來(lái)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

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

保存退出,重新加載配置和啟動(dòng)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 項(xiàng)目,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打包應(yīng)用時(shí)構(gòu)建docker鏡像; imageName:用于指定鏡像名稱,jenkins_test是倉(cāng)庫(kù)名稱,{project.version}為鏡像版本號(hào); dockerHost:打包后上傳到的docker服務(wù)器地址; baseImage:該應(yīng)用所依賴的基礎(chǔ)鏡像,此處為java; entryPoint:docker容器啟動(dòng)時(shí)執(zhí)行的命令; resources.resource.targetPath:將打包后的資源文件復(fù)制到該目錄; resources.resource.directory:需要復(fù)制的文件所在目錄,maven打包的應(yīng)用jar包保存在target目錄下面; resources.resource.include:需要復(fù)制的文件,打包好的應(yīng)用jar包。

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

打包成功完成后,回到docker容器 查看鏡像倉(cāng)庫(kù)

curl 127.0.0.1:5000/v2/_catalog

確認(rèn)存在之后將上傳的鏡像拉取下來(lái),拉取成功后查看鏡像列表

docker iamges

顯示如圖:

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

這樣就說(shuō)明這一套操作成功了 ,首次打包可能比較慢 因?yàn)閐ocker 要拉去一下 java :8 基礎(chǔ)鏡像

我們來(lái)啟動(dòng)一下這個(gè)鏡像

docker run -p 8080:8080 imageid

-p:端口映射

啟動(dòng)成功如圖:

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

因?yàn)閟pringboot 項(xiàng)目的application.yml文件中配置的server.port 為8080.啟動(dòng)的時(shí)候需要映射 8080:8080 第一個(gè)8080 是宿柱機(jī)的端口 第二個(gè)8080 是容器的端口

到此本文的所需要實(shí)現(xiàn)的都已經(jīng)實(shí)現(xiàn)了,繼續(xù)閱讀有彩蛋哦!!!!

在springboot 項(xiàng)目中有一個(gè)日志配置,如下

<?xml version='1.0' encoding='UTF-8'?><configuration debug='false'> <!--定義日志文件的存儲(chǔ)地址 勿在 LogBack 的配置中使用相對(duì)路徑--> <property name='LOG_HOME' value='/home/logs' /> <!-- 控制臺(tái)輸出 --> <appender name='STDOUT' class='ch.qos.logback.core.ConsoleAppender'><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%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> <!--日志文件保留天數(shù)--> <MaxHistory>30</MaxHistory></rollingPolicy><encoder class='ch.qos.logback.classic.encoder.PatternLayoutEncoder'> <!--格式化輸出:%d表示日期,%thread表示線程名,%-5level:級(jí)別從左顯示5個(gè)字符寬度%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> <!-- 日志輸出級(jí)別 --> <root level='info'><appender-ref ref='STDOUT' /><appender-ref ref='FILE' /> </root></configuration>

我們要注意這個(gè)節(jié)點(diǎn)配置的logs 文件的保存地址

如果按照傳統(tǒng)的jar包部署方式,日志文件應(yīng)該就在宿主機(jī)的 /home/logs 里面了但是現(xiàn)在我們發(fā)現(xiàn)都沒(méi)有這個(gè)目錄了,那問(wèn)題出現(xiàn)在哪?日志文件輸出到哪了??我們進(jìn)入啟動(dòng)的springboot容器試一試,以交互形式進(jìn)入一個(gè)已經(jīng)在運(yùn)行的容器內(nèi)部

docker exec -it containerid bash

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

我們就看到里面有一個(gè) home目錄,依次進(jìn)入目錄我們會(huì)發(fā)現(xiàn)日志文件在這里了!

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

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

docker stop containeriddocker rm containerid

重新啟動(dòng)容器

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

這次我們命令加了一個(gè) -d 意思是守護(hù)線程啟動(dòng) (后臺(tái)運(yùn)行) 使用如下命令 查看啟動(dòng)的容器日志

docker logs -f containerID

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

可以看到,啟動(dòng)成功了,那么 按理說(shuō) locback.xml 會(huì)在我們映射的宿主機(jī)的 /home/logs 目錄下輸出我們的日志文件,我們?nèi)タ纯?輸入一系列命令,可以看到日志文件真的在這里了!

Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟

到此這篇關(guān)于Spring Boot 打包上傳Docker 倉(cāng)庫(kù)的詳細(xì)步驟的文章就介紹到這了,更多相關(guān)Spring Boot 打包上傳內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Spring
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精选一区| 精品一区二区三区中文字幕视频 | 国产剧情一区| 快she精品国产999| 亚洲在线免费| 蜜桃tv一区二区三区| 国产精品主播| 国产欧美日韩精品一区二区三区| 中文字幕亚洲精品乱码| 不卡av一区二区| 欧美精品激情| 国精品一区二区| 国产精品videosex极品| 国产精品18| 国产精品免费大片| 国语精品一区| 成人在线丰满少妇av| 国产精品66| 成人国产精品一区二区网站| 精品成av人一区二区三区 | 国产精品2023| 国产精品一区2区3区| 国产一区国产二区国产三区| 精品资源在线| 国产成人1区| 久久中文视频| 亚洲视频www| 天堂va蜜桃一区二区三区| 亚洲ab电影| 日本一区中文字幕| 日本va欧美va精品| 成人国产精品久久| 婷婷综合六月| 国产精品99久久久久久董美香| 高清在线一区| 久久久精品网| 亚洲毛片在线免费| 久久激情综合网| 麻豆91小视频| 欧美不卡视频| 日韩中文字幕91| 亚州精品视频| 日本一区二区高清不卡| 999国产精品永久免费视频app| 国产一区二区精品| 亚洲精品韩国| 国产精品宾馆| 99国产精品| 日韩av三区| 成人台湾亚洲精品一区二区| 国产婷婷精品| 日韩激情综合| 国产亚洲字幕| 亚洲爱爱视频| 丝袜亚洲精品中文字幕一区| 日韩国产一区二| 91在线成人| 久久久久久色| 麻豆网站免费在线观看| 蜜臀国产一区| 久久在线电影| 亚洲v天堂v手机在线| 91成人小视频| 欧美丰满日韩| 国产精品老牛| 欧美va天堂在线| 日本久久一区| а√天堂中文在线资源8| 欧美在线资源| 青青草精品视频| 天堂√8在线中文| 免费在线看一区| 久久超级碰碰| 日韩一区二区三区免费播放| 只有精品亚洲| 久久精品一区二区三区中文字幕| 99国产精品自拍| 久久精品一本| 国产亚洲精品v| 不卡专区在线| 亚洲开心激情| 美女少妇全过程你懂的久久| 久久精品99国产精品| 欧美搞黄网站| 97精品一区| 色狠狠一区二区三区| 国产麻豆一区二区三区| 国产亚洲精品v| 91免费精品| 国产精品久久久久毛片大屁完整版| 日本不卡免费高清视频在线| 中文无码日韩欧| 激情欧美日韩一区| 美女毛片一区二区三区四区最新中文字幕亚洲 | 亚洲一二av| 特黄毛片在线观看| 欧美国产视频| 西西人体一区二区| 中文字幕在线看片| 国产九一精品| 老司机久久99久久精品播放免费| 国产真实久久| 蜜桃久久久久| 日韩 欧美一区二区三区| 久久午夜影视| 久久国产日本精品| 中文字幕在线高清| 国产剧情在线观看一区| 视频一区欧美日韩| 狠狠操综合网| 岛国av在线网站| 国产精品视频3p| 国产精品免费精品自在线观看| 亚洲丝袜美腿一区| 综合在线一区| 视频一区中文| 亚洲va在线| 欧美日韩尤物久久| 久久精品国产99国产精品| 日本麻豆一区二区三区视频| 午夜日韩福利| 日韩免费小视频| 久久婷婷亚洲| 久久毛片亚洲| 久久久久国产精品一区三寸| 精品网站aaa| 国产精品jk白丝蜜臀av小说| 国产三级一区| 日韩激情精品| 美日韩精品视频| 亚洲少妇在线| 伊人久久成人| 亚洲毛片视频| 中文字幕免费精品| 欧美中文日韩| 日韩精品a在线观看91| 六月天综合网| 亚洲欧美日本国产| 亚洲一区二区小说| 热久久国产精品| 日本不卡在线视频| 日本一不卡视频| 欧美一区在线观看视频| 欧美一级二级视频| 欧美精品影院| 国产欧美自拍| 国产精品天堂蜜av在线播放| 欧美日韩国产高清| 亚洲一区二区动漫| 在线成人直播| 日本不卡一二三区黄网| 日本不卡高清| 久久国际精品| 成人国产综合| 欧美片第1页| 免费欧美日韩| 中文字幕av一区二区三区人| 蜜臀久久99精品久久久久久9 | 欧美日韩国产v| 欧美二区视频| 亚洲欧美网站| 亚洲精品看片| 国产精品久久国产愉拍| 国产精品极品| 久久久久久美女精品| 婷婷综合网站| 日韩欧美一区二区三区在线视频 | 欧美一区二区三区激情视频| 宅男在线一区| 亚洲人www| 国产精品久久乐| 色婷婷精品视频| 99视频精品| 涩涩涩久久久成人精品| 岛国精品一区| 亚洲一级黄色| 一区二区精彩视频| 青青国产精品| 福利视频一区| 亚洲乱码视频| 欧美激情一区| 精品在线播放| 亚洲精品极品| 久久av影院| 午夜久久免费观看| 亚州精品视频| 亚洲麻豆一区| 精品99久久| 好吊日精品视频| 精品中文字幕一区二区三区| 天堂8中文在线最新版在线| 日av在线不卡| 国产精品.xx视频.xxtv| 香蕉成人av| 日韩1区2区日韩1区2区| 水蜜桃精品av一区二区| 91精品蜜臀一区二区三区在线| 亚洲一区二区三区久久久| 免费在线播放第一区高清av| 久久亚洲成人|