Docker項目部署 Java微服務項目Docker鏡像部署 Kaki的博客

Docker項目部署 Java微服務項目Docker鏡像部署 Kaki的博客

1.docker安裝
– 安裝命令

    (1)yum 包更新到最新
    sudo yum update

    (2)安裝需要的軟件包, yum-util 提供yum-config-manager功能,另外兩個是devicemapper驅動依賴的
    sudo yum install -y yum-utils device-mapper-persistent-data lvm2

    (3)設置yum源爲阿里雲
    sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

    (4)安裝docker
    sudo yum install docker-ce

    (5)安裝後查看docker版本
    docker -v
    
    (6)ustc鏡像源設置
     vi /etc/docker/daemon.json  
     注:1.docker文件夾不存在,需要先創建文件夾,再創建文件
         2.這裏使用阿里的鏡像(比較快)
     {
      "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
      }

2.下載centos7鏡像
    docker pull tomcat:7

3.使用Dockerfile創建 jdk鏡像

  • 概述:什麼Dockerfile?

Dockerfile是由一系列命令和參數構成的腳本,這些命令應用於基礎鏡像並最終創建一個新的鏡像。
1、對於開發人員:可以爲開發團隊提供一個完全一致的開發環境;
2、對於測試人員:可以直接拿開發時所構建的鏡像或者通過Dockerfile文件構建一個新的鏡像開始工作了;
3、對於運維人員:在部署時,可以實現應用的無縫移植。

  • 常用命令
命令 作用
FROM image_name:tag 定義了使用哪個基礎鏡像啓動構建流程
MAINTAINER user_name 聲明鏡像的創建者
ENV key value 設置環境變量 (可以寫多條)
RUN command 是Dockerfile的核心部分(可以寫多條)
ADD source_dir/file dest_dir/file 將宿主機的文件複製到容器內,如果是一個壓縮文件,將會在複製後自動解壓
COPY source_dir/file dest_dir/file 和ADD相似,但是如果有壓縮文件並不能解壓
WORKDIR path_dir 設置工作目錄

在這裏插入圖片描述

  • 使用腳本創建jdk鏡像
(1)創建目錄
mkdir –p /usr/local/dockerjdk8


(2)下載jdk-8u171-linux-x64.tar.gz並上傳到服務器(虛擬機)中的/usr/local/dockerjdk8目錄


(3)創建文件Dockerfile vi Dockerfile
#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像創建者信息
MAINTAINER KAKI
#切換工作目錄
WORKDIR /usr
RUN mkdir  /usr/local/java
#ADD 是相對路徑jar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java環境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
ENV JRE_HOME $JAVA_HOME/jre
ENV PATH $JAVA_HOME/bin:$PATH


(4)執行命令構建鏡像
docker build -t='jdk1.8' .
注意後邊的空格和點,不要省略


(5)查看鏡像是否建立完成
docker images

4.微服務項目打包,在maven中配置打包插件

 <build>
        <finalName>app</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
            <!-- docker的maven插件,官網:  自動打包與部署的插件
            https://github.com/spotify/docker-maven-plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <version>0.4.13</version>
                <configuration>
                    <!-- 鏡像名稱
                           有兩種形式:
                           1)kaki:1.0-SNAPSHOT : tensquare_eureka鏡像名稱,1.0-SNAPSHOT: 標籤,只能在Docker本地倉庫構建處理
                           2127.0.0.1:5000/kaki:1.0-SNAPSHOT: 127.0.0.1:5000是Docker的私服地址,既能在本地倉庫構建,也能上傳到私服
                    -->
                    <!--私服鏡像庫地址-->
                    <imageName>127.0.0.1:5000/${project.artifactId}:${project.version}</imageName>
                    <!-- FROM jdk1.8 -->
                    <!--基礎鏡像-->
                    <baseImage>jdk1.8</baseImage>
                    <!-- ENTRYPOINT ["java","-jar","/app.jar"] -->
                    <!--命令-->
                    <entryPoint>["java", "-jar","/${project.build.finalName}.jar"]</entryPoint>
                    <!--創建鏡像與解壓到新鏡像-->
                    <resources>
                        <!-- ADD app.jar /app.jar -->
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <!-- 2375: Docker專門爲DockerMaven插件開放構建鏡像的端口 -->
                    <dockerHost>http://127.0.0.1:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

打包好之後,複製到雲主機

在這裏插入圖片描述

執行 docker build -t=‘zuul’ .
注意 “.”不能省略
在這裏插入圖片描述
打包好之後就可以看到自己構建的鏡像了(docker images )在這裏插入圖片描述

創建自定義鏡像容器
docker run -di --name=kaki-blog -p 9000:9000 kaki-blog
在這裏插入圖片描述
之後通過網址就可以訪問了
在這裏插入圖片描述

這樣就算是部署成功了,但是比較坑的是每個鏡像相對獨立所以localhost與127.0.0.1都是相對於某個容器的,如果是夸容器訪問需使用宿主機IP

docker相關命令參考 直通車

歡迎點贊關注收藏哦 ,碼雲搜索KakiNakajima

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章