小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

docker部署springboot項(xiàng)目

 頭號(hào)碼甲 2022-10-07 發(fā)布于北京

1、項(xiàng)目結(jié)構(gòu)

 

pom文件中加入:docker-maven-plugin

<plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.11</version>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

 

 

 

 2、創(chuàng)建Dockerfile文件

在src/main/docker文件夾下創(chuàng)建用于生成鏡像的文件

文件內(nèi)容:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD kzng-thymeleaf.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

  文件解釋:  

FROM為使用哪個(gè)鏡像

VOLUME為掛載路徑

ADD為復(fù)制文件到鏡像中

RUN為初始化時(shí)運(yùn)行的命令

ENV為設(shè)置環(huán)境變量

  ENTRYPOINT為啟動(dòng)時(shí)運(yùn)行的命令  

VOLUME 指定了臨時(shí)文件目錄為/tmp。其效果是在主機(jī) /var/lib/docker 目錄下創(chuàng)建了一個(gè)臨時(shí)文件,并鏈接到容器的/tmp。該步驟是可選的,如果涉及到文件系統(tǒng)的應(yīng)用就很有必要了。/tmp目錄用來持久化到 Docker 數(shù)據(jù)文件夾,因?yàn)?Spring Boot 使用的內(nèi)嵌 Tomcat 容器默認(rèn)使用/tmp作為工作目錄

項(xiàng)目的 jar 文件作為 “app.jar” 添加到容器的

ENTRYPOINT 執(zhí)行項(xiàng)目 app.jar。為了縮短 Tomcat 啟動(dòng)時(shí)間,添加一個(gè)系統(tǒng)屬性指向 “/dev/urandom” 作為 Entropy Source

3、docker部署springboot項(xiàng)目

  • 在服務(wù)器創(chuàng)建mydocker文件夾,并且將上面寫好的Dockerfile文件和打包好的springboot項(xiàng)目放到該文件夾下

 

 

  • 構(gòu)建項(xiàng)目鏡像

執(zhí)行docker build命令,docker就會(huì)根據(jù)Dockerfile-kzng里你定義好的命令構(gòu)建新的鏡像

在該mydocker目錄下,命名為kzng_app(注意后邊有個(gè)點(diǎn))

docker build -f Dockerfile-kzng -t kzng-app .

    

  其中-f代表選擇的鏡像文件Dockerfile-kzng,-t代表要構(gòu)建的鏡像的tag,.代表當(dāng)前目錄,也就是Dockerfile-kzng文件所在的目錄。

  查看鏡像是否創(chuàng)建成功 docker images

  

 

 

 注:容器時(shí)間和宿主時(shí)間會(huì)不一致

  查看容器的時(shí)間:

docker exec [containerId] date

創(chuàng)建容器時(shí)注意與宿主機(jī)時(shí)間保持一致(-v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime)

docker run -v /etc/timezone:/etc/timezone -v /etc/localtime:/etc/localtime -d -p 5050:5050 kzng-app

此方法只修改了容器時(shí)間,但啟動(dòng)的服務(wù)仍然還是差8小時(shí) ,最好的方法直接在Dockfile文件中修改時(shí)間、時(shí)區(qū)

4、啟動(dòng)項(xiàng)目

docker run -d -p 80:8888 kzng-app
-d參數(shù)是讓容器后臺(tái)運(yùn)行 
-p 是做端口映射,此時(shí)將服務(wù)器中的80端口映射到容器中的80(項(xiàng)目中端口配置的是80)端口 建議應(yīng)用系統(tǒng)設(shè)置一致

  當(dāng)出現(xiàn):docker: Error response from daemon: driver failed programming external connectivity on endpoint epic_kowalevski時(shí)重啟docker(systemctl restart docker)

 

 5、結(jié)尾

當(dāng)docker運(yùn)行部署好后,若只能在服務(wù)器端訪問,而不能在其它客戶端機(jī)器上訪問時(shí),即(Linux 下 Docker 端口映射到宿主機(jī)后 外部無法訪問對(duì)應(yīng)宿主機(jī)端口)

需要進(jìn)行如下配置:

解決辦法:

# vi /etc/sysctl.conf

或者

# vi /usr/lib/sysctl.d/00-system.conf

添加如下代碼:

net.ipv4.ip_forward=1

重啟network服務(wù)

# systemctl restart network

查看是否修改成功

# sysctl net.ipv4.ip_forward

如果返回為“net.ipv4.ip_forward = 1”則表示成功了

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多