其實安裝Docker的過程,你們能夠到Docker官網找到本身相對應的安裝文檔進行安裝,Docker區分CE和EE的兩個版本,具體這兩個版本有什麼區別,你們自行查閱相關資料,這裏再也不概述。教程用的是CE那麼就找到對應的官方文檔進行安裝,如下是教程安裝的步驟html
1.更新一下包吧,多更無害linux
# sudo yum -y update
2.安裝所需的軟件包 git
# sudo yum install -y yum-utils \ device-mapper-persistent-data \ lvm2
3.使用穩定版的倉庫(固然可使用最新版或測試版的倉庫,這個須要官方的說明)github
# sudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo
4.安裝Docker ce docker
# sudo yum install docker-ce
tips:在生產系統上,您應該安裝特定版本的Docker CE,而不是始終使用最新版本。shell
5.啓動Dockervim
# sudo systemctl start docker
6.docker
經過運行hello-world
映像驗證是否正確安裝。centos
# docker run hello-world
若是出現如下的界面,就表明安裝成功瀏覽器
首先不直接從Docker Store上直接Pull Jenkins 的 Image 文件,由於待會須要進行dotnet core 的 Docker自動部署,須要對宿主機上的Docker進行直接操做,那麼須要掛載 Docker 給 Jenkins Image,因此如今須要本身動手編寫 Dockerfile 構建自定義的Jenkins。bash
# touch Dockerfile # vim Dockerfile
插入如下內容:
FROM jenkins USER root #清除了基礎鏡像設置的源,切換成騰訊雲的jessie源 #使用非騰訊雲環境的須要將 tencentyun 改成 aliyun RUN echo '' > /etc/apt/sources.list.d/jessie-backports.list \ && echo "deb http://mirrors.aliyun.com/debian jessie main contrib non-free" > /etc/apt/sources.list \ && echo "deb http://mirrors.aliyun.com/debian jessie-updates main contrib non-free" >> /etc/apt/sources.list \ && echo "deb http://mirrors.aliyun.com/debian-security jessie/updates main contrib non-free" >> /etc/apt/sources.list #更新源並安裝缺乏的包 RUN apt-get update && apt-get install -y libltdl7 && apt-get update ARG dockerGid=999 RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group # 安裝 docker-compose 由於等下構建環境的須要 RUN curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose RUN chmod +x /usr/local/bin/docker-compose
若是不安裝 libltdl7 會致使以下這個問題,緣由是jenkins容器內部沒有這個包
docker: error while loading shared libraries: libltdl.so.7: cannot open shared object file: No such file or directory Build step 'Execute shell' marked build as failure
在Jenkins操做宿主的Docker的時候會出現拒絕訪問的問題,其實就是容器的jenkins用戶沒有權限訪問容器外的docker命令,因此 RUN命令 須要把Jenkins用戶加入到Docker用戶組
構建Image
# docker build . -t auto-jenkins
出現以上 Successfully 內容表明安裝Jenkins成功
在啓動Jenkins時,須要先建立一個Jenkins的配置目錄,而且掛載到docker 裏的Jenkins目錄下
# mkdir -p /var/jenkins_home
運行 Jenkins
# docker run --name jenkins -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -v /var/jenkins_home :/var/jenkins_home \ -d auto-jenkins
第一行:構建一個名稱爲jenkins的容器 -p 是容器運行開放端口
第二行 和第三行: -v 是將宿主機的docker文件掛載進容器裏
第四行:創建宿主機的配置目錄,掛載進docker容器裏,這樣容器裏的Jenkins配置目錄文件就會映射出來
第五行:使用auto-jenkins Image 而且後臺啓動
這個時候 run Jenkins 會提示成功
執行 docker ps 命令後,發現什麼都沒有
執行 docker ps -a 命令看看
執行 docker start -a jenkins 讓容器前臺輸出運行信息的方式運行
不難看出其實 Jenkins 啓動已是能夠了,只是權限問題致使這個錯誤的信息。
如今須要看一下Jenkins官方的Dockerfile
知道問題緣由,貼上代碼了。
##修改 /var/jenkins 文件夾權限 # chown -R 1000 /var/jenkins_home
繼續執行運行Jenkins 代碼
# docker run --name jenkins -p 8080:8080 -p 50000:50000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v $(which docker):/bin/docker \ -v /var/jenkins_home:/var/jenkins_home \ -d auto-jenkins
出現一串字符後,執行 docker ps 會發現容器已經啓動了,正常了。這個時候是否是可使用了?彆着急,還有很長的路。
打開瀏覽器輸入地址 your IP:8080 進行訪問,你會開心的看到這個界面,看到這個界面表明你的Jenkins 已經安裝成功了,可是須要進行配置,如今就教你們怎麼去配置
首先,進入容器內
# docker exec -it jenkins /bin/bash
查看 /var/jenkins_home/secrets/initialAdminPassword 文件內的密碼
# cat /var/jenkins_home/secrets/initialAdminPassword
其實不必定要進入容器內查看密碼,能夠直接在宿主機的環境下,查看 /var/jenkins//secrets/initialAdminPassword 的內容,由於以前筆者已經將這個目錄掛載進Docker裏面了
複製輸出的內容,粘貼到Administrator password,輸入 exit 退出容器,此時進行下一步你會看到此界面,點擊 Install suggested plugins
等待初始化完畢
到了這一步,本身隨緣去填吧。
使用VS2017建立一個ASP.NET Core 2.0 Web應用程序,並將代碼上傳到git。這裏筆者就不演示上傳代碼的過程步驟了。
爲大家準備了一個地址,方便大家完成本教程:http://git.oschina.net/wenalu/MvcTest
新建一個自由風格的軟件項目,並填名稱 點擊 OK
填寫源代碼管理
勾選 Poll SCM 設置拉取Git 上代碼的間隔,筆者這裏是兩分鐘拉取一次
勾上 Delete workspace before build start 是設置構建前刪除工做區
勾上 Abort the build if it's stuck 是設定構建的超時時間,若是構建使用的時間超過設定的時間,那麼就認爲此次的構建是失敗的。筆者這裏超時設置的是10分鐘
增長一個Execute Shell 腳本,並填寫如下腳本內容
#!/bin/bash # 獲取短版本號 GITHASH=`git rev-parse --short HEAD` echo ---------------Remove-Orphans------------------ docker-compose -f ./docker-compose.yml -f ./docker-compose.override.yml -p dockercompose4255153253317384266 down --rmi local --remove-orphans echo ------------------Config----------------------- docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 config echo ------------------Build------------------------ docker-compose -f ./docker-compose.ci.build.yml -p dockercompose4255153253317384266 up --build echo ---------------Publishing...------------------ docker-compose -f "./docker-compose.yml" -f "./docker-compose.override.yml" -p dockercompose4255153253317384266 up -d --build
應用保存,回到項目界面上。點擊當即構建進行部署工做 SUCCESS
打開瀏覽器,地址輸入 your IP:8088/
參考地址
https://www.cnblogs.com/LongJiangXie/p/7517909.html Centos7 & Docker & Jenkins & ASP.NET Core 2.0 自動化發佈和部署
https://www.cnblogs.com/stulzq/p/8627360.html 使用Docker安裝Jenkins
https://www.cnblogs.com/stulzq/p/8627824.html ASP.NET Core + Docker +Jenkins 實現持續集成
[Jenkins]admin用戶登錄,提示登錄無效(以前登錄OK,三天沒有登錄,忽然提示登錄無效,重啓沒法解決)的解決方法
問題出現現象:
系統一直正常,忽然某天登錄,提示用戶無效,沒法登錄成功。
一、打開config文件,JENKINS_HOME目錄,而後在目錄下查找config.xml文件)
二、修改<useSecurity>true</useSecurity>爲<useSecurity>false</useSecurity>
三、刪除<authorizationStrategy>*****</authorizationStrategy>和<securityRealm>****</securityRealm>兩項內容
四、重啓jenkins,從新登錄便可