一、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命令來達到這種集成效果- 安裝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裏面提前配置好的。