docker基礎學習三

一、Dockerfile學習

由一系列的參數和命令構成的腳本。這些命令應用於基礎鏡像並最終創建一個新的鏡像。基礎鏡像就是操作系統級別的鏡像。

  • 常用命令
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 設置工作目錄
  • 使用腳本創建鏡像
//創建目錄
mkdir –p /docker/dockerjdk8

//通過ftp上傳一個jdk到dockerjdk8目錄裏面

//創建一個名爲Dockerfile文件
vi Dockerfile

//配置Dockerfile文件
#依賴鏡像名稱和ID
FROM centos:7
#指定鏡像創建者信息
MAINTAINER YANGK
#切換工作目錄
WORKDIR /docker
RUN mkdir  /docker/java
#ADD 是相對路徑jar,把java添加到容器中
ADD jdk-8u131-linux-x64.tar.gz /docker/java

#配置java環境變量,如果不知道jdk解壓之後的命令,可以在宿主機解壓看看
ENV JAVA_HOME /docker/java/jdk1.8.0_131
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH  $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH

在這裏插入圖片描述

//執行命令構建鏡像
docker build -t='jdk1.8' .
-t:指定鏡像名稱
.指定Dockerfile的文件夾,當前目錄就有,所以這個點就指代當前目錄

//查看鏡像是否創建成功
docker images

在這裏插入圖片描述

在這裏插入圖片描述

二、構建私有倉庫

  • 搭建私有倉庫
//搜索鏡像
docker search registry

//拉取鏡像
docker pull registry

//啓動私有倉庫容器
docker run -di --name=registry -p 5000:5000 registry

查看私有倉庫是否搭建成功,打開瀏覽器訪問http://centosIP:5000/v2/_catalog 看到{“repositories”:[]}表示搭建成功
在這裏插入圖片描述
修改daemon.json,讓docker信任私有倉庫地址

//修改daemon.json
vi /etc/docker/daemon.json

//增加如下內容
"insecure-registries":["centosIP:5000"]

//重啓docker服務
systemctl restart docker

在這裏插入圖片描述

  • 鏡像上傳至私有倉庫
//標記此鏡像爲私有倉庫的鏡像
docker tag  jdk1.8 centosIP:5000/jdk1.8

//再次啓動私服容器
docker start registry

上傳標記的鏡像
docker push centosIP:5000/jdk1.8

在這裏插入圖片描述

再次訪問倉庫
在這裏插入圖片描述

三、通過Maven插件自動部署

  • 修改宿主機的docker配置,讓其可以遠程訪問
//讓docker可以遠程訪問,docker默認關閉遠程操作。
vi /lib/systemd/system/docker.service

其中在ExecStart=後添加配置-H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

在這裏插入圖片描述

//刷新配置,重啓服務
systemctl daemon-reload 
systemctl restart docker  
docker start registry 
  • 創建一個Maven項目
//配置maven插件 
<build>
        <finalName>dockerDemo</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>
                    <!-- 生成的鏡像名稱 -->
                    <imageName>192.168.100.128:5000/${project.artifactId}:${project.version}</imageName>
                    <!-- 基礎鏡像  相當於FROM jdk1.8-->
                    <baseImage>jdk1.8</baseImage>
                    <!-- 入口點 相當於ENTRYPOINT ["java","-jar","/dockerDemo.jar"]-->
                    <entryPoint>["java", "-jar", "/${project.build.finalName}.jar"]</entryPoint>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <!-- 創建路徑,target路徑-->
                            <directory>${project.build.directory}</directory>
                            <!-- dockerDemo.jar  相當於ADD dockerDemo.jar /-->
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                    <dockerHost>http://192.168.100.128:2375</dockerHost>
                </configuration>
            </plugin>
        </plugins>
    </build>

在這裏插入圖片描述

  • 部署到docker服務和私服上
//進入項目工程目錄下,將項目安裝到本地倉庫
mvn install

//輸入以下命令,進行打包和上傳鏡像
mvn docker:build -DpushImage

在這裏插入圖片描述
在這裏插入圖片描述

  • 啓動容器
    在這裏插入圖片描述
    在這裏插入圖片描述
docker run -di --name=demo -p 9002:8080 192.168.100.128:5000/demo:0.0.1-SNAPSHOT

創建的是sprinboot項目默認端口是8080,

在這裏插入圖片描述

四、Jenkins學習

  • Jenkins是什麼
    Jenkins是一個持續集成的工具,能從代碼倉庫中獲取併產生代碼更新列表並輸出到編譯輸出信息。生成JUnit/TestNG測試報告,也就是用以圖表等形式提供詳細的測試報表功能。支持第三方插件,使得 Jenkins 變得越來越強大
  • 安裝配置登錄,需要JDK支持
    下載地址:
//安裝
rpm -ivh jenkins-2.183-1.1.noarch.rpm

//配置修改用戶和端口

vi /etc/sysconfig/jenkins
JENKINS_USER="root" 
JENKINS_PORT="9909"

在這裏插入圖片描述

//啓動服務,如果報錯可以根據提示找到錯誤原因
systemctl start jenkins
//重啓服務
systemctl daemon-reload
//查看啓動狀態
systemctl status jenkins

//獲取初始密碼
cat /var/lib/jenkins/secrets/initialAdminPassword

啓動的時候失敗,通過 systemctl status jenkins。看到是沒有找到JDK(這個JDK我默然安裝不是/usr/bin/java)

在這裏插入圖片描述

修改 vi /etc/init.d/jenkins,增加JDK路徑
在這裏插入圖片描述

獲取登錄密碼
在這裏插入圖片描述

啓動等成成功出現這個頁面,原因就是在插件管理器中檢查了更新站點 ,使用了https,將它改成http就行了
在這裏插入圖片描述

//通過這個命令找到更新文件的路徑
find / -name "hudson.model.UpdateCenter.xml"
//修改
vi /var/lib/jenkins/hudson.model.UpdateCenter.xml

在這裏插入圖片描述

重啓Jenkins,就可以下載插件了
在這裏插入圖片描述

  • 安裝插件
    上面哪一步之後就已經默認安裝了一些插件,比如git之類的。下面安裝一個Maven插件
    在這裏插入圖片描述

選中之後直接點擊下方的直接安裝就可以了

  • 全局工具配置
    jenkins能夠持續集成其實是調用maven插件,執行maven命令來達到這種集成效果
//解壓
tar -zxvf apache-maven-3.6.1-bin.tar.gz 

//配置本地倉庫
vi /yangk/apache-maven-3.6.1/conf/settings.xml

在這裏插入圖片描述

 - 工具配置

找到jenkins的全局工具配置
在這裏插入圖片描述

配置JDK,GIT,Mvane
在這裏插入圖片描述

Git之前已經默認安裝在Jenkins了,所以用默認的就可以了
在這裏插入圖片描述
在這裏插入圖片描述

  • 任務的創建與執行
    在執行這一步之前,我將一個普通的項目上傳到git服務器裏面了。
    • 新建項目
      在這裏插入圖片描述

填寫項目在Git的地址
在這裏插入圖片描述

找到這個項目pom.xml的位置,提前輸入好項目編譯啓動命令,然後保存就可以了。
在這裏插入圖片描述

點擊紅框地方就可以啓動這個任務了,我這邊出現紅色球和陰雨天的標識是因爲我啓動失敗了,git的賬號和密碼沒有配置
在這裏插入圖片描述
在這裏插入圖片描述

可以在左邊看到這個項目的進度,點擊進度條可以進去看到詳細進度。如果全部配置成功之後就可以在docker看到完成的鏡像了。也是需要在pom裏面提前配置好的。
在這裏插入圖片描述

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