亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟

 更新時(shí)間:2021年11月04日 10:50:59   作者:齊天小圣^O^  
本文主要介紹了打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

前提條件:

1、docker服務(wù)器已開(kāi)啟遠(yuǎn)程訪(fǎng)問(wèn),參考《遠(yuǎn)程docker服務(wù)器攜帶證書(shū)連接》。

2、服務(wù)器上已經(jīng)搭建好k8s集群,本文是k8s單點(diǎn)集群用于測(cè)試。

        在之前的文章中我們已經(jīng)通過(guò)idea的docker插件測(cè)試了遠(yuǎn)程docker服務(wù)器已經(jīng)能夠正常訪(fǎng)問(wèn),雖然利用這個(gè)docker插件也可以完成docker鏡像的打包及推送,但本文我們將換一種方式,使用maven的docker-maven-plugin插件完成docker鏡像的打包,以及推送到遠(yuǎn)程docker服務(wù)器。

1、Dockerfile

        Dockerfile文件用于將我們的應(yīng)用做成docker鏡像

# 指定jdk環(huán)境版本,基于java8創(chuàng)建鏡像
FROM java:8
# 掛載臨時(shí)目錄
VOLUME /tmp
# 添加指定jar包到容器《此處為項(xiàng)目打包產(chǎn)生的jar包全名》
ADD practice-job-0.0.1-SNAPSHOT.jar /practice-job.jar
# 容器向外暴露的端口號(hào)《指該項(xiàng)目運(yùn)行所占用的的端口號(hào)》
EXPOSE 8081
# 容器啟動(dòng)后執(zhí)行的命令
ENTRYPOINT [ "java", "-Djava.security.egd=file:/dev/./urandom", "-jar", "/practice-job.jar" ]

2、pom配置

        pom文件的相關(guān)配置如下,注意填入遠(yuǎn)程服務(wù)器的ip,并指明上述Dockerfile路徑以及訪(fǎng)問(wèn)遠(yuǎn)程docker需要的pem證書(shū)文件的路徑。

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
 
            <!--使用docker-maven-plugin插件,用于將該服務(wù)打包成鏡像發(fā)往docker服務(wù)端-->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>1.2.2</version>
                <!--將插件綁定在某個(gè)phase執(zhí)行 -->
                <executions>
                    <execution>
                        <id>build-image</id>
                        <!--將插件綁定在package這個(gè)phase上。也就是說(shuō),用戶(hù)只需執(zhí)行mvn package ,就會(huì)自動(dòng)執(zhí)行mvn docker:build -->
                        <phase>package</phase>
                        <goals>
                            <goal>build</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <forceTags>true</forceTags>
                    <!--指定生成的鏡像名 該處修改為自己想要生成的鏡像名稱(chēng)-->
                    <imageName>practice-job</imageName>
                    <!--指定標(biāo)簽-->
                    <imageTags>
                        <imageTag>latest</imageTag>
                    </imageTags>
                    <!-- 指定Dockerfile 路徑 -->
                    <dockerDirectory>${project.basedir}</dockerDirectory>
                    <!--指定遠(yuǎn)程docker地址 -->
                    <dockerHost>https://公網(wǎng)ip:2376</dockerHost>
                    <!--指定pem證書(shū)文件路徑地址 -->
                    <dockerCertPath>${project.basedir}/src/main/resources/pem</dockerCertPath>
                    <!-- 這里是復(fù)制jar包到docker容器指定目錄配置 -->
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!--jar 包所在的路徑此處配置的即對(duì)應(yīng) target 目錄 -->
                            <directory>${project.build.directory}</directory>
                            <!-- 需要包含的jar包,這里對(duì)應(yīng)的是Dockerfile中添加的文件名 -->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>
        </plugins>
    </build>

3、鏡像推送

        上述準(zhǔn)備就緒以后執(zhí)行install命令,等待一段時(shí)間后下方控制臺(tái)出現(xiàn)BUILD SUCCESS則說(shuō)明鏡像推送成功。

        接著去遠(yuǎn)程服務(wù)器驗(yàn)證一下,輸入docker images命令查看容器鏡像。

        可以看到我們的應(yīng)用鏡像已經(jīng)推送成功了,下面就是部署階段。

4、k8s部署

        如果在以前我們的部署環(huán)境只有docker容器,那么這里只需要docker run我們的應(yīng)用鏡像,將項(xiàng)目部署在docker容器就可以訪(fǎng)問(wèn)了。但現(xiàn)在我們的部署環(huán)境是k8s+docker,所以不能直接運(yùn)行我們的應(yīng)用鏡像進(jìn)行部署,下面進(jìn)入k8s的部署。

        首先需要?jiǎng)?chuàng)建兩個(gè)yaml文件:practice-job-deployment.yaml、practice-job-service.yaml,至于這兩個(gè)文件的作用涉及到k8s的概念,關(guān)于k8s的概念將會(huì)在之后的文章中談到,這里只需要知道在k8s中的大部分配置都是基于yaml文件進(jìn)行定義的就可以了。

vi practice-job-deployment.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: practice
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: practice-job-deployment
  namespace: practice
spec:
  replicas: 1
  selector:
    matchLabels:
      app: practice-job-pod
  template:
    metadata:
      labels:
        app: practice-job-pod
    spec:
      hostNetwork: true
      containers:
        - name: practice-job-container
          image: practice-job:latest  #鏡像名稱(chēng)+版本
          imagePullPolicy: Never   #表示鏡像來(lái)源,IfNotPresent本地沒(méi)有就從hub倉(cāng)庫(kù)拉取,Never表示只從本地
          ports:
            - containerPort: 8081
          env:
            # 指定日志文件路徑
            - name: logging.path
              value: /var/logs

vi practice-job-service.yaml

apiVersion: v1
kind: Service
metadata:
  name: practice-job-service
  namespace: practice
  labels:
    app: practice-job-service
spec:
  type: NodePort
  selector:
    app: practice-job-pod
  ports:
    - name: http
      protocol: TCP
      port: 8081 #service(對(duì)內(nèi))的端口
      targetPort: 8081 #pod的端口
      nodePort: 32001 #service(對(duì)外)的端口

        然后分別執(zhí)行命令:

kubectl apply -f practice-job-deployment.yaml
kubectl apply -f practice-job-service.yaml

        執(zhí)行命令:kubectl get pod --all-namespaces 查看pod,可以看到我們項(xiàng)目的pod已經(jīng)成功運(yùn)行。

        執(zhí)行命令:kubectl logs practice-job-deployment-77d685767-glvgm -n practice 查看應(yīng)用運(yùn)行日志。格式為:kubectl logs <pod的name> -n <pod的namespace>。

        執(zhí)行命令:docker ps 可以看到項(xiàng)目也已經(jīng)運(yùn)行在容器中了

        執(zhí)行命令:kubectl get service --all-namespaces 可以看到應(yīng)用對(duì)應(yīng)的服務(wù)也已啟動(dòng)成功且對(duì)外暴露的端口正是32001,這個(gè)端口就是我們前面在yaml文件中自己配置的。

        最后瀏覽器訪(fǎng)問(wèn):公網(wǎng)ip:32001/doc.html。此路徑只是針對(duì)我的項(xiàng)目,不同的項(xiàng)目路徑不同。注意防火墻需要開(kāi)啟相應(yīng)端口。

        至此應(yīng)用從本地打包docker鏡像推送至服務(wù)器,并部署到k8s+docker容器結(jié)束。

到此這篇關(guān)于打包docker鏡像推送到遠(yuǎn)程服務(wù)器并部署到k8s的方法步驟的文章就介紹到這了,更多相關(guān)docker鏡像打包并部署到k8s內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon

    解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon

    這篇文章主要給大家介紹了關(guān)于解決docker?pull出現(xiàn)錯(cuò)誤:Error?response?from?daemon的相關(guān)資料,這個(gè)錯(cuò)誤提示一般是因?yàn)槟銢](méi)有權(quán)限拉取對(duì)應(yīng)的鏡像,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法

    Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法

    Docker容器在運(yùn)行期間有時(shí)可能會(huì)需要修改或者添加暴露的端口,但是有時(shí)候運(yùn)行的容器又不想再另外建立一個(gè)新的鏡像。接下來(lái)通過(guò)本文給大家分享Docker動(dòng)態(tài)添加端口不需要重新建立鏡像的方法,感興趣的朋友一起看看吧
    2019-07-07
  • 教你如何獲取Harbor的帶tag的鏡像清單

    教你如何獲取Harbor的帶tag的鏡像清單

    這篇文章主要介紹了如何利用Java語(yǔ)言實(shí)現(xiàn)獲取harbor中全部鏡像的帶tag的清單,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下
    2022-04-04
  • 輕松安裝docker并運(yùn)行docker swarm模式

    輕松安裝docker并運(yùn)行docker swarm模式

    這篇文章主要介紹了安裝docker并運(yùn)行docker swarm模式的相關(guān)知識(shí),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友一起學(xué)習(xí)吧
    2016-12-12
  • IDEA使用Docker插件(菜鳥(niǎo)教程)

    IDEA使用Docker插件(菜鳥(niǎo)教程)

    本文主要介紹了IDEA使用Docker插件,文中通過(guò)圖文示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解docker國(guó)內(nèi)鏡像拉取和鏡像加速registry-mirrors配置修改

    詳解docker國(guó)內(nèi)鏡像拉取和鏡像加速registry-mirrors配置修改

    由于國(guó)內(nèi)訪(fǎng)問(wèn)直接訪(fǎng)問(wèn)Docker hub網(wǎng)速比較慢,拉取鏡像的時(shí)間就會(huì)比較長(zhǎng)。一般我們會(huì)使用鏡像加速或者直接從國(guó)內(nèi)的一些平臺(tái)鏡像倉(cāng)庫(kù)上拉取
    2017-05-05
  • docker registry 鏡像同步的實(shí)現(xiàn)思路

    docker registry 鏡像同步的實(shí)現(xiàn)思路

    這篇文章主要介紹了docker registry 鏡像同步的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Docker、Podman 和 Containerd 三者區(qū)別解析

    Docker、Podman 和 Containerd 三者區(qū)別解析

    Docker、Podman 和 Containerd 是三種流行的容器工具,它們都用于容器的創(chuàng)建、管理和運(yùn)行,但它們?cè)谠O(shè)計(jì)理念、功能和使用場(chǎng)景上有一些差異,這篇文章主要介紹了Docker、Podman 和 Containerd 三者區(qū)別,需要的朋友可以參考下
    2025-02-02
  • 使用Docker部署 spring-boot maven應(yīng)用的方法

    使用Docker部署 spring-boot maven應(yīng)用的方法

    本篇文章主要介紹了使用Docker部署 spring-boot maven應(yīng)用的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • 總結(jié)Docker不適合部署數(shù)據(jù)庫(kù)的7大原因

    總結(jié)Docker不適合部署數(shù)據(jù)庫(kù)的7大原因

    在本篇文章里小編給大家整理一篇關(guān)于Docker不適合部署數(shù)據(jù)庫(kù)的7大原因,有興趣的朋友們可以參考學(xué)習(xí)下。
    2021-01-01

最新評(píng)論