CentOS7下使用docker,完成Jenkins映象、tomcat映象製作和啟動
最終的目的,是為了完成docker環境的Jenkins搭建使用,並從gitlab上獲取程式碼,打出war包,war包通過目錄掛載的方式,在tomcat容器中使用,總體思路如下
一、CentOS7下使用Docker
首先確保已經執行了yum源切換到阿里雲,參考上一節內容
1.解除安裝已經安裝的docker
yum list installed | grep docker
yum -y remove docker-engine.x86_64(根據上一步結果解除安裝)
2.安裝Docker
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
# step 1: 安裝必要的一些系統工具
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Step 2: 新增軟體源資訊
sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# Step 3: 更新並安裝 Docker-CE
sudo yum makecache fast
sudo yum -y install docker-ce
# Step 4: 開啟Docker服務
sudo service docker start
docker version
3.映象搜尋
如果直接使用docker pull,預設是從官方映象走,速度也還行,但是國內也有兩家可以使用,阿里雲和網易雲,如下:
阿里雲
網易雲-映象中心
官方Dockerhub
比如在阿里雲上面搜尋centos,可以搜尋到如下
可以直接執行,pull這個映象
docker pull registry.cn-hangzhou.aliyuncs.com/centos7-lnmp/centos7-lnmp
啟動映象docker run –it imageid
4.容器修改後提交為映象(目前很少用到,可忽略)
在宿主機器上執行docker ps,檢視正在執行的映象例項
執行docker commit d5e2 centos7sshd,即可提交一個映象並命名為centos7sshd,即可將容器內的修改提交為一個新的映象,可以用此製作其他容器。
5.建立支援SSH服務的CentOS映象(目前很少用到,可忽略)
l 啟動sshd服務
[[email protected] /]# yum install passwd openssl openssh-server -y
啟動sshd:
# /usr/sbin/sshd -D
這時報以下錯誤:
[[email protected] b5926410fe60 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
執行以下命令解決:
[[email protected] /]# ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''
[[email protected] /]# ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
[[email protected] /]# ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key -N ''
然後,修改 /etc/ssh/sshd_config 配置資訊:
UsePAM yes 改為 UsePAM no
UsePrivilegeSeparation sandbox 改為 UsePrivilegeSeparation no
[[email protected] /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[[email protected] /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
修改完後,重新啟動sshd
[[email protected] /]# /usr/sbin/sshd –D
l 修改root密碼,執行passwd修改即可
l Commit此容器修改(參考上一節內容)
l 啟動新的映象
docker run -it -p 10022:22 80d /usr/sbin/sshd –D
l 在宿主機器上登陸
ssh [email protected] -p 10022
6.通過Dockerfile建立tomcat7容器(基於ubuntu映象)
1)通過dockerfile,add war包、jdk方式製作映象
所需內容,可以從CSDN下載:https://download.csdn.net/download/sdfiiiiii/10693805
使用dockerfile製作映象。整體思路是:先要準備好apache-tomcat-8.0.53.tar.gz、jdk-8u144-linux-x64.tar.gz、demo.war(用於試驗的war包,事先準備好),用網易雲的ubuntu14.04映象為基礎,將tomcat、jdk和war包add到映象中,並最後在容器啟動的時候執行run.sh用於啟動tomcat。
建立tomcat8-jdk目錄,並按下圖放好檔案。
vim Dockerfile
FROM hub.c.163.com/library/ubuntu:14.04
MAINTAINER liukun <[email protected]>
# now add java and tomcat support in the container
ADD jdk-8u144-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.53.tar.gz /usr/local/
# configuration of java and tomcat ENV
ENV JAVA_HOME /usr/local/jdk1.8.0_144
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.53
ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.53
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# container listener port
EXPOSE 8080
# ADD war into tomcat under webapps directory
ADD demo.war /usr/local/apache-tomcat-8.0.53/webapps
ADD run.sh /usr/local/
ENTRYPOINT ["/usr/local/run.sh"]
run.sh檔案內容(此檔案需要設定執行許可權)
#!/bin/bash
/usr/local/apache-tomcat-8.0.53/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.0.53/logs/catalina.out
2)構建映象build
docker build -t tomcat8-jdk1.8-ubuntu14.04:1.0.0 .
注意最後有一個“.”
3)啟動容器docker run(使用-v掛載主機目錄,將tomcat日誌輸出到宿主機)
將主機上的/usr/local/tomcat/logs目錄掛載到容器的/usr/local/apache-tomcat-8.0.53/logs目錄(容器中的日誌將會寫回到宿主機上;--privileged=true要加,否則會報Permission denied,這個引數位置也不能放到最後)
docker run –itd -p 8080:8080 -v /usr/local/tomcat/logs:/usr/local/apache-tomcat-8.0.53/logs --privileged=true tomcat8-jdk1.8-ubuntu14.04:1.0.0
4)訪問tomcat
瀏覽器訪問http://192.168.74.154:8080/demo/sample
5)也可以通過-v掛載目錄的方式,將war包目錄在docker run的時候對映到容器的webapps目錄下,啟動容器即可
Dockerfile內容
FROM hub.c.163.com/library/ubuntu:14.04
MAINTAINER liukun <[email protected]>
# now add java and tomcat support in the container
ADD jdk-8u144-linux-x64.tar.gz /usr/local/
ADD apache-tomcat-8.0.53.tar.gz /usr/local/
# configuration of java and tomcat ENV
ENV JAVA_HOME /usr/local/jdk1.8.0_144
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV CATALINA_HOME /usr/local/apache-tomcat-8.0.53
ENV CATALINA_BASE /usr/local/apache-tomcat-8.0.53
ENV PATH $PATH:$JAVA_HOME/bin:$CATALINA_HOME/lib:$CATALINA_HOME/bin
# container listener port
EXPOSE 8080
ADD run.sh /usr/local/
ENTRYPOINT ["/usr/local/run.sh"]
run.sh內容:
#!/bin/bash
/usr/local/apache-tomcat-8.0.53/bin/startup.sh && tail -f /usr/local/apache-tomcat-8.0.53/logs/catalina.out
Build映象:
docker build -t tomcat-war-out:1.0.0 .
啟動容器
docker run -it -p 8080:8080 -v /usr/local/tomcat/logs:/usr/local/apache-tomcat-8.0.53/logs -v /home/liukun/tomcat/webapps:/usr/local/apache-tomcat-8.0.53/webapps --privileged=true tomcat-war-out:1.0.0
注意:-p引數不能放在最後,否則啟動是ok的,但是不能訪問
6)其他常用命令
docker rm -f $(docker ps -a | grep "tomcat*" | awk '{print $1}')
批量刪除無用的映象(映象名包含關鍵字)
docker rmi --force `docker images | grep doss-api | awk '{print $3}'` //其中doss-api為關鍵字
7.整合Jenkins進行打包釋出流程
整體思路:使用Jenkins容器打包,scp war包到tomcat容器宿主機,掛載war包目錄到tomcat容器中,並重啟tomcat容器
分解動作:
l Jenkins是一個docker容器,拉取程式碼並打war包(step1)
l war包scp到目標tomcat所在宿主機上,通過指令碼scp到目標主機(step2)
l server.xml預先生成好,做成共享目錄,掛載到容器conf目錄(step3)
l war包目錄掛載到容器裡面(step4)
l 啟動/重啟容器(step5)
8.Jenkins using docker
對應上面的step1:目標:搭建Jenkins的docker環境,並從git上拉取程式碼並打出war包
需要準備的環境jdk1.8+tomcat8+jenkins2.138.1war包+maven3.5.0
l 所需內容,可以從CSDN下載:https://download.csdn.net/download/sdfiiiiii/10693920
l 不直接選用Jenkins映象,否則安裝完成之後,會有一些Jenkins外掛找不到;下載2.138.1版本Jenkins的war包,通過tomcat8+jdk1.8+Ubuntu14.04安裝
1)準備好的目錄結構如下
2)構建映象build
docker build -t jenkins-tomcat:1.0.0 .
3)啟動容器docker run
sudo docker run -it -p 8080:8080 -p 50000:50000 --name jenkins3 --privileged=true-v /home/liukun/jenkins:/var/jenkins_home -v /root/.jenkins:/root/.jenkins jenkins-tomcat:1.0.0
4)訪問Jenkins並完成配置
l 通過docker exec –it jenkins3 /bin/bash進入到容器中,檢視檔案/root/.jenkins/secrets/initialAdminPassword內容,來獲取admin密碼
l 安裝完成Jenkins,如果專案是maven+gitlab專案,那麼需要安裝maven外掛和gitlab外掛;進行“系統管理->外掛管理->可選外掛”勾選Maven Integration和gitlab兩個外掛進行安裝
l Ubuntu軟體源加速(用於安裝git和maven)
由於預設的軟體安裝源速度較慢,需要切換到國內源
先執行apt-get install apt-transport-https
l 由於映象中沒有加入git,所以需要通過apt-get install git進行安裝
l Maven通過掛載目錄的方式使用
Ø /home/liukun/jenkins:/var/jenkins_home,將maven包放在宿主機的/home/liukun/jenkins,即可在容器內/var/jenkins_home訪問並使用
Ø Jenkins啟動之後需要配置maven所在目錄
在“系統管理->全域性工具配置”找到MAVEN;裡面的目錄,是我們通過目錄掛載到容器裡面的,可以直接使用,maven的settings.xml中,mirror配置到阿里雲
l Jenkins構建專案的時候報錯,需要高版本jdk支援
高版本的Jenkins需要至少使用jdk1.8,所以在“系統管理->全域性工具配置”找到JDK並按如下配置(jdk已經通過docker run命令掛載到了容器中)
重新構建即可
l Jenkins的專案構建引數如下
至此,Jenkins using docker完成,可以通過gitlab打出war包
後續step2、3、4、5,其實均已通過上述內容分步驟有所體現。
相關推薦
CentOS7下使用docker,完成Jenkins映象、tomcat映象製作和啟動
最終的目的,是為了完成docker環境的Jenkins搭建使用,並從gitlab上獲取程式碼,打出war包,war包通過目錄掛載的方式,在tomcat容器中使用,總體思路如下 一、CentOS7下使用Docker 首先確保已經執行了yum源切換到阿里雲,參考上一節
CentOS7安裝Docker,執行Nginx映象、Centos映象
1、環境,CentOS7 Minimal 64位,Docker必須要64位的系統 2、通過yum命令直接安裝,yum install docker 3、啟動Docker,並將其設定為開機啟動 (1)啟動,systemctl start docker.service (2)開機啟動,systemctl en
關於CentOS7下docker-ce無法刪除映象的問題
從舊版的docker刪除後安裝了新版的docker-ce 發現之前映象無法刪除,並且重新pull不能覆蓋,會出現兩個一模一樣的映象。 百度查也沒有查到類似的方法。 [[email protected] ~]# docker images REPOSITORY
CentOS7 下Docker安裝、啟動
1、檢查系統核心 Docker 要求 CentOS 系統的核心版本高於 3.10 ,檢視本頁面的前提條件來驗證你的CentOS 版本是否支援 Docker 。 通過uname -r 命令檢視你當前的核心版本。 [[email protected
centos7下docker啟動失敗--ob for docker.service failed because the control process exited with error code.
今天在配置openshift用docker部署映象的時候,啟動docker發現竟然啟動失敗: 之前是可以啟動的,突然不能啟動了,想到我改了配置檔案: 執行: vim /etc/sysconfig/docker 可能是家的內容有問題
Linux(CentOS7)下Docker的安裝與卸載
yum安裝 span col 存儲 target entos 軟件包 docker-ce 啟動 既然你在看這篇博客,那就說明你已經知道Docker是什麽了,那麽我也就不再復制粘貼那些官話套話了,下面直接開幹。Linux(CentOS7)環境下Docker的安裝與卸載。 原文
Centos7下docker安裝mysql5.7
第一次使用docker安裝軟體,在此記錄一下安裝過程 1. DockerHub檢視mysql的版本號:DockerHub 2. 拉取mysql官方映象: #docker pull mysql:5.7 3. 建立mysql的相
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理 (三)
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理 接下來開始部署springboot專案。 把打包好的spingboot jar包檔案通過securexftp 工具上傳到任意資料夾下,構建docker 映象。 mvn package docker
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理 (二)
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理 接下來開始搭建開發基礎的虛擬機器環境。這裡使用的是wmware station 在centos官網下載最新版的資料 選擇完整版安裝映象。安裝時選擇開發環境安裝 ,網路勾選上,安裝完畢後開啟命令列,輸入
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理(一)
新兵實戰搭建CentOS7下docker+springboot專案+nginx反向代理 工作之餘把之前學的串起來 後面把前端也加進來 形成一個體系,對未來開發可以作為參考 1.Springboot打包 網上快速搭建一個springboot的教程很多這裡省略。測試本地環境可以執行成
MySQL5.7在CentOS7下安裝,配置,調優
1、解除安裝系統自帶的 mariadb-lib [[email protected] ~]# rpm -qa | grep mariadb mariadb-libs-5.5.44-2.el7.centos.x86_64 [[email protecte
[Docker]CentOS7下Docker安裝教程
想要倒騰Kubernetes的話,第一步就是要會安裝Docker,這篇文章講一講過程 安裝步驟 檢查核心版本,必須是3.10以上 uname -r 安裝Docker yum -y install docker 啟
Docker映象、容器的理解和使用方法
零、應用背景 先看下面2個問題: 1. 單機多系統。如:windows上跑linux、VPS服務、PaSS服務。 windows上跑linux,一般用VM技術實現。 VPS提供商需要將一臺機器劃分成多
centos7下docker安裝showdoc介面管理工具
1,安裝dockeryum install docker啟動dockersystemctl start docker.servicesystemctl enable docker.service2,下載showdoc官方程式碼:新建一個目錄儲存下下來的程式碼mkdir s
【Spring+SpringMVC+Mybatis】利用SSM整合,完成使用者登入、註冊、修改密碼系統
近年來,由於Struts2+Hibernate3+Spring3,這套SSH框架,Struts2屢次爆出安全漏洞,Hibernate就只會推行它HQL那套而越來越遠離SQL查詢關係資料庫的本質,所以Spring+SpringMVC+Mybatis這套SSM框架悄然興起,現階
centos7下jdk,mysql,tomcat的安裝以及web專案的部署過程
web專案在linux下執行是比較穩定的 概述:之前做了一個基於Spring+springmvc+hibernate的專案,最近想在linux下執行一下看看有沒有什麼問題,所以就自己動手安裝了linux其中的一個發行版centos來做測試:其中牽扯到linux下jdk,mysql,tomcat的
centos7將docker的倉庫改為aliyun的映象倉庫
2.註冊賬號,點選自己的管理中心3.然後進入映象庫可以看到自己專有的映象地址4.使用命令 vi /etc/docker/daemon.json新增如下{ "registry-mirrors": ["https://xxxxx.mirror.aliyuncs.com"] }
centos7下xgboost,python安裝
git clone --recursive https://github.com/dmlc/xgboost cd xgboost make -j4 cd python-package sudo pyth
CentOS7下docker服務無法啟動的一般檢查
檢查步驟 啟動docker服務: systemctl restart docker 這個時候會報錯,請進行以下步驟: 1. 找到報錯的型別,或者報錯的說明。 2. 檢查docker的配置檔案 3. 檢查磁碟空間 4. 檢查端口占用情況 步驟詳
CentOS7下Docker與.net Core 2.2
tar 更新 ast dll roo 意思 ror round localhost 原文:CentOS7下Docker與.net Core 2.2一、使用 yum 安裝(CentOS 7下) Docker 要求 CentOS 系統的內核版本高於 3.10 ,查看本頁