dockerfile創(chuàng)建鏡像JDK
# mkdir -p /usr/local/dockerjdk8 創(chuàng)建文件夾 ( -p 級聯(lián)創(chuàng)建)
# 將jdk文件包上傳到剛剛創(chuàng)建的dockerjdk8目錄并解壓
# vi Dockerfile 注意:文件名是固定的 此文件必須與上傳的jdk文件同一目錄
#依賴鏡像名稱和ID ( jdk依賴于contos7 contos7也叫基礎(chǔ)鏡像)
FROM centos:7
#指定鏡像創(chuàng)建者信息
MAINTAINER lcchina
#切換工作目錄
WORKDIR /usr
RUN mkdir /usr/local/java
#ADD 是相對路徑j(luò)ar,把java添加到容器中
ADD jdk-8u171-linux-x64.tar.gz /usr/local/java/
#配置java環(huán)境變量
ENV JAVA_HOME /usr/local/java/jdk1.8.0_171
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
執(zhí)行命令構(gòu)建鏡像
docker build -t='dockerjdk8' . 名字可以隨意起''可以省略,名字后面空格. 注意后邊的空格和點速和,不要省略
查看鏡像是否建立完成
docker images
創(chuàng)建容器
docker run -it jdk1.8 /bin/bash
將服務(wù)通過dockerfile打成鏡像
創(chuàng)建目錄 mkdir /usr/local/server
并將打好的jar包上傳到創(chuàng)建好的server目錄下
上傳方式一:在server目錄 直接rz上傳 (推薦)
上傳方式二: Alt+P put G:\nacosspring\nacos_server\target\myapp.jar
將jar剪切到server目錄下 mv myapp.jar /usr/local/server/
創(chuàng)建 vi Dockerfile
# from是此時要打成鏡像依賴于jdk鏡像
FROM dockerjdk8
# 掛載目錄
VOLUME /tmp
# add移動到指定目錄并解壓
ADD myapp.jar /usr/local/server/
# 執(zhí)行 相當(dāng)于java -java app.jar
ENTRYPOINT ["java","-jar","/usr/local/server/myapp.jar"]
執(zhí)行命令構(gòu)建鏡像
docker build -t=myapp . 名字可以隨意起''可以省略,名字后面空格. 注意后邊的空格和點憾朴,不要省略
查詢看鏡像
docker images
鏡像創(chuàng)建容器
docker run -di --name myapp -p 8012:8012 myapp
[私有倉庫搭建與配置]
私有倉庫說明圖
(1)拉取docker私有倉庫鏡像
docker pull registry
(2)創(chuàng)建私有倉庫容器并啟動
docker run -di --name=registry -p 5000:5000 registry
docker start 容器id
(3)打瀏覽器訪問地址
http://192.168.233.137:5000/v2/_catalog
(4)添加信認(rèn)在開發(fā)服務(wù)器中添加私有倉庫docker地址
vi /etc/docker/daemon.json
(5)添加以下內(nèi)容钉寝,保存退出。(開發(fā)服務(wù)中添加公有服務(wù)中的docker地址)此配置是配置兩個docker中的私有倉庫
{
"registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"],
"insecure-registries":["192.168.233.137:5000"]
}
(6)重啟docker服務(wù)
systemctl restart docker 或 sevice docker restart
[鏡像上傳至私有倉庫 A服務(wù)上傳到B服務(wù)]
(1)將A服務(wù)中的鏡像先打標(biāo)記
docker tag dockerjdk8 192.168.233.137:5000/dockerjdk8
(2) 上傳標(biāo)記的鏡像
docker push 192.168.233.137:5000/dockerjdk8 (上傳)
docker pull 192.168.233.137:5000/dockerjdk8 (下載)
DockerMaven插件(重點)
說明:通過maven插件自動部署到私有倉庫(如果不使用maven插件其將jar包通過dockerfile轉(zhuǎn)成鏡像并打成標(biāo)記后才能上傳并中間還有一臺docker服務(wù)A--B.使用maven插件后直接打成鏡像上傳到私有倉庫.中間不需要中轉(zhuǎn)docker服務(wù))
(1)修改宿主機的docker配置舔糖,讓其可以遠(yuǎn)程訪問(此配置讓外部訪問信認(rèn))
vi /lib/systemd/system/docker.service
#其中ExecStart=后添加配置
#說明0.0.0.0表示任意地址都可以訪問但必須指定端口(端口自定義)
-H tcp://0.0.0.0:0312 -H unix:///var/run/docker.sock
(2) 刷新配置,重啟服務(wù)
systemctl daemon-reload (重新加載)
systemctl restart docker (重啟docker)
docker start registry (重啟私有倉庫容器)
#如果不想麻煩 直接重啟服務(wù)器即可
reboot (重啟服務(wù)器)
(3) 在服務(wù)中工程pom.xml 增加配置
<build>
<finalName>app</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<!-- docker的maven插件,官網(wǎng):
https://github.com/spotify/docker-maven-plugin -->
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.4.13</version>
<configuration>
<!--打標(biāo)記,并上傳到私有倉庫-->
<imageName>192.168.233.136:5000/${project.artifactId}:${project.version}
</imageName>
<!--指定基礎(chǔ)鏡像-->
<baseImage>dockerjdk8</baseImage>
<entryPoint>["java","-jar","/${project.build.finalName}.jar"]</entryPoint>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>${project.build.directory}</directory>
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
<!--信認(rèn)地址-->
<dockerHost>http://192.168.233.136:0312</dockerHost>
</configuration>
</plugin>
</plugins>
</build>
不通過私有庫直接推送到docke中
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>com.spotify</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>1.2.0</version>
<configuration>
<!-- 鏡像名稱 -->
<imageName>${project.artifactId}:${project.version}</imageName>
<!-- 基礎(chǔ)鏡像jdk 1.8-->
<baseImage>java</baseImage>
<!--切換到/ROOT目錄 -->
<workdir>/ROOT</workdir>
<cmd>["java", "-version"]</cmd>
<entryPoint>["java", "-jar", "${project.build.finalName}.jar"]</entryPoint>
<!-- 指定 Dockerfile 路徑
<dockerDirectory>${project.basedir}/src/main/docker</dockerDirectory>
-->
<!--指定遠(yuǎn)程 docker api地址-->
<dockerHost>http://192.168.4.182:0312</dockerHost>
<!-- 這里是復(fù)制 jar 包到 docker 容器指定目錄配置 -->
<resources>
<resource>
<targetPath>/ROOT</targetPath>
<!--用于指定需要復(fù)制的根目錄蕉朵,${project.build.directory}表示target目錄-->
<directory>${project.build.directory}</directory>
<!--用于指定需要復(fù)制的文件。${project.build.finalName}.jar指的是打包后的jar包文件阳掐。-->
<include>${project.build.finalName}.jar</include>
</resource>
</resources>
</configuration>
<executions>
<execution>
<id>build-image</id>
<phase>package</phase>
<goals>
<goal>build</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
IDEA docker 插件使用
添加docker插件
查看容器狀態(tài)
配置信息
配置
啟動
啟動
查看
查看啟動狀態(tài)
點擊IDEA右側(cè)的M 選擇服務(wù)執(zhí)行以下命令
mvn clean package docker:build -DpushImage
啟動上傳后的容器
docker run -di --name eureka -p 8001:8001 my_eureka:1.0-SNAPSHOT
Gogs安裝與配置
(1) 下載鏡像 (本地git服務(wù)器)
docker pull gogs/gogs
(2)啟動容器
docker run -di --name gogs -p 3000:3000 gogs/gogs
(3) 配置
假設(shè)我的centos虛擬機IP為192.168.233.136 完成以下步驟? 在地址欄輸入[http://192.168.233.136:3000](http://192.168.233.136:3000) 會進入首次運行安裝程序頁面始衅,我們可以選擇一種數(shù)據(jù)庫作為gogs數(shù)據(jù)的存儲,最簡單的是選擇SQLite3缭保。如果對于規(guī)模較大的公司汛闸,可以選擇MySQL
首頁只需修改紅線兩處即可
注冊頁面
點擊加號創(chuàng)建倉庫
創(chuàng)建倉庫
創(chuàng)建成功后的倉庫頁面
IDEA選擇git方式
選擇git
打開Settings 找到git 選擇本地安裝git目錄
添加git地址
將gogs地址添加
選擇Add 添加本地git
上傳到git服務(wù)器
添加注解并上傳
上傳并push
點擊push
輸入剛才創(chuàng)建的git賬號與密碼
刷新頁面看到上傳的服務(wù)
Jenkins安裝
Jenkins架構(gòu)圖
配置maven插件與倉庫
(1) 將jdk-8u171-linux-x64.rpm上傳至服務(wù)器(虛擬機)
執(zhí)行安裝命令: rpm -ivh jdk-8u171-linux-x64.rpm
(2)安裝Maven與本地倉庫
# 解壓插件
tar -zxvf apache‐maven-3.3.9-bin.tar.gz
(3) 上傳maven倉庫
ALT+P
push -f 要上傳的倉庫目錄
(4) 配置本地倉庫目錄(settings.xml)
編輯setting.xml配置文件 vi /usr/local/maven/conf/settings.xml ,配置本地倉庫目錄,內(nèi)容如下
<localRepository>/usr/local/repository</localRepository>
(5)再次編輯settings.xml配置文件
vi /usr/local/maven/conf/settings.xml
<pluginGroups>
<pluginGroup>com.spotify</pluginGroup> (添加些內(nèi)容)
</pluginGroups>
Jenkins安裝與啟動
(1)上傳jenkins安裝包并安裝
創(chuàng)建目錄: mkdir mkdir -p /usr/local/jenkins
安裝命令: rpm -ivh jenkins-2.83-1.1.noarch.rpm
(2) 配置jenkins
vi /etc/sysconfig/jenkins
修改配置jenkins內(nèi)容
(3) 啟動服務(wù)
systemctl start jenkins 或者 service jenkins start
啟動后復(fù)制首頁的密文進行解密
復(fù)制密文
cat /var/lib/jenkins/secrets/initialAdminPassword
進行解密
點擊左側(cè)安裝插件
插件就gitsvn有用
注冊賬號
點擊系統(tǒng)管理
點擊管理插件
可選插件點擊maven直接安裝
點擊全局工具配置
配置JDK環(huán)境變量
配置maven
點擊首頁新建
添加項目點擊OK
勾選git并添加git地址
指定POM并添加加maevn命令并且保存
刷新頁面點擊右側(cè)圖標(biāo)執(zhí)行
發(fā)布說明
點擊紅框里的按鈕查看執(zhí)行代碼
點擊控制臺輸出
docker中安裝jenkins
拉取鏡像
docker pull jenkins/jenkins:lts