摘要:針對此改變,重新整理并記錄自動部署環境配置步驟。官方源下載可能很慢,更換成國內的源,比如阿里云的源啟動并設置開機自啟更換鏡像源從官方源下載鏡像可能很慢,更換成阿里云的源即可。阿里云專屬加速器地址。
前言
從Docker改變使用動態庫后,DooD不再可行,而Dind依然可行。針對此改變,重新整理并記錄自動部署環境配置步驟。
此環境是實現微服務自動部署的基礎,使用jenkins持續集成工具,并內置了java和maven,并實現了容器內運行Docker命令的功能。
軟件環境宿主機win10
虛擬機CentOS-7-x86_64-Minimal-1708
Docker 17.09.0-ce
apache-maven-3.5.2
jdk 1.8.0_151
jenkins 2.73.3
虛擬機安裝配置 1. 安裝Docker參考官方教程Get Docker CE for CentOS
可選項:更換源。官方源下載Docker可能很慢,更換成國內的Docker源,比如阿里云的Docker源https://download.docker.com/linux/centos/docker-ce.repo
$ sudo service docker start $ sudo chkconfig docker on3. 更換Docker鏡像源
從Docker官方源下載鏡像可能很慢,更換成阿里云的源即可。阿里云專屬加速器地址。教程照搬一下,方便查閱。
安裝/升級你的Docker客戶端推薦安裝1.10.0以上版本的Docker客戶端,參考文檔 docker-ce
如何配置鏡像加速器您可以通過修改daemon配置文件/etc/docker/daemon.json來使用加速器:
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-"EOF" { "registry-mirrors": ["https://a2srrwpd.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker容器安裝配置 1. 創建Dockerfile
該Dockerfile已實現:
安裝openjdk1.8、maven、jenkins、git
maven配置阿里云鏡像源
jenkins自啟
時區調整成中國上海
Dockerfile內容如下:
FROM centos:centos7.4.1708 MAINTAINER "Simon Sun"2. 編譯DockerfileADD http://www-us.apache.org/dist/maven/maven-3/3.5.2/binaries/apache-maven-3.5.2-bin.tar.gz /opt USER root RUN tar -zxvf /opt/apache-maven-3.5.2-bin.tar.gz -C /opt && yum install -y wget && yum install -y initscripts && yum install -y sudo && yum install -y java-1.8.0-openjdk && yum install -y java-1.8.0-openjdk-devel && yum install -y git # install jenkins RUN wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo && rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key && yum install -y jenkins # install docker with aliyun mirror source RUN yum install -y yum-utils device-mapper-persistent-data lvm2 && yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo && yum-config-manager --disable docker-ce-edge && yum install -y docker-ce RUN chmod a+x /opt/apache-maven-3.5.2/bin/mvn # add user jenkins and add user jenkins to group docker # set root password to root RUN echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers && gpasswd -a jenkins docker && echo "root:root" | chpasswd ENV JAVA_HOME /usr/lib/jvm/java ENV PATH $JAVA_HOME/bin:$PATH ENV MAVEN_HOME /opt/apache-maven-3.5.2 ENV PATH $MAVEN_HOME/bin:$PATH ENV TZ=Asia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # add aliyun maven mirror source RUN sed -i "//i " /opt/apache-maven-3.5.2/conf/settings.xml USER jenkins CMD sudo service jenkins start && tail -F /var/log/jenkins/jenkins.log nexus-aliyun central Nexus aliyun http://maven.aliyun.com/nexus/content/groups/public
docker build -t jeesun/java-jenkins .3. 啟動容器
docker run --privileged -i -t -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 jeesun/java-jenkins
此時我已經使用jenkins賬戶登錄到容器中,根據Dockerfile,此時jenkins已經自啟,且目前正在運行命令tail -F /var/log/jenkins/jenkins.log。
按Ctrl+P+Q退出bash。命令Ctrl+P+Q保證退出容器不關閉容器。
訪問http://localhost:8080。當然,因為我裝的是minimal版的CentOS,沒有圖形界面,只能在宿主機上通過http://虛擬機ip:8080來訪問??墒褂妹?b>ip addr查看虛擬機ip地址。
使用docker ps查看CONTAINER ID。
使用docker exec -it container_id /bin/bash進入容器。
首次訪問該地址需要使用/var/lib/jenkins/secrets/initialAdminPassword中的初始管理員密碼來解鎖jenkins。 執行cat /var/lib/jenkins/secrets/initialAdminPassword就可以知道密碼了。
按照頁面指示繼續,jenkins會推薦下載一些插件。我默認都安裝了。如果安裝失敗重試即可。然后就是填入新的管理員賬號密碼。完成后正式進入jenkins管理頁面。
5. 測試選擇新建,填入項目名稱,選擇構建一個自由風格的軟件項目。
構建——》增加構建步驟——》Execute shell——》填入docker run hello-world——》保存。選擇立即構建。如果不報錯,氣球為藍色,說明成功。
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.34/version: dial unix /var/run/docker.sock: connect: permission denied解決方案
優先參考官方Manage Docker as a non-root user。
關閉虛擬機的selinux(可能有用)。參考查看 SELinux狀態及關閉SELinux。
在虛擬機中修改/var/run/docker.sock的權限。(很危險!?。。?/p>
$ sudo chmod 777 /var/run/docker.sock2. 錯誤2 錯誤內容
Failed to get D-Bus connection: Operation not permitted解決方案
忽略。
3. 錯誤3 錯誤內容Couldn"t connect to Docker daemon at http+unix://var/run/docker.sock - is it running?解決方案
權限問題。解決辦法同錯誤1。
參考內容https://askubuntu.com/questions/477551/how-can-i-use-docker-without-sudo
Docker in Docker
DooD(不再有用,因為新版Docker使用了動態庫)
Dockerfile: ADD vs COPY
Maven鏡像更換為阿里云中央倉庫(精)
tailf、tail -f、tail -F三者區別
[How to automatically start a service when running a docker container?
](https://stackoverflow.com/que...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27138.html
摘要:從開始搭建自動部署環境續前言上一篇從開始搭建自動部署環境雖然環境搭建起來了,但是配置少了一部分步驟。創建本地倉庫參考新建項目項目是我寫的一個用來測試環境的項目,代碼托管在上。 從0開始搭建自動部署環境(續) 前言 上一篇從0開始搭建自動部署環境雖然環境搭建起來了,但是配置少了一部分步驟。本來應該寫到上一篇中,但是這樣做篇幅過長了。另外,此篇會使用自動部署一個同步在Github上的Spr...
摘要:從開始搭建自動部署環境續前言上一篇從開始搭建自動部署環境雖然環境搭建起來了,但是配置少了一部分步驟。創建本地倉庫參考新建項目項目是我寫的一個用來測試環境的項目,代碼托管在上。 從0開始搭建自動部署環境(續) 前言 上一篇從0開始搭建自動部署環境雖然環境搭建起來了,但是配置少了一部分步驟。本來應該寫到上一篇中,但是這樣做篇幅過長了。另外,此篇會使用自動部署一個同步在Github上的Spr...
摘要:針對此改變,重新整理并記錄自動部署環境配置步驟。官方源下載可能很慢,更換成國內的源,比如阿里云的源啟動并設置開機自啟更換鏡像源從官方源下載鏡像可能很慢,更換成阿里云的源即可。阿里云專屬加速器地址。 前言 從Docker改變使用動態庫后,DooD不再可行,而Dind依然可行。針對此改變,重新整理并記錄自動部署環境配置步驟。 此環境是實現微服務自動部署的基礎,使用jenkins持續集成工具...
摘要:和比特幣協議有所不同的是,以太坊的設計十分靈活,極具適應性。超級賬本區塊鏈的商業應用超級賬本超級賬本是基金會下的眾多項目中的一個。證書頒發機構負責簽發撤 showImg(https://segmentfault.com/img/bV2ge9?w=900&h=385); 從比特幣開始 一個故事告訴你比特幣的原理及運作機制 這篇文章的定位會比較科普,盡量用類比的方法將比特幣的基本原理講出來...
閱讀 550·2021-11-25 09:44
閱讀 2636·2021-11-24 09:39
閱讀 2305·2021-11-22 15:29
閱讀 3520·2021-11-15 11:37
閱讀 3379·2021-09-24 10:36
閱讀 2507·2021-09-04 16:41
閱讀 992·2021-09-03 10:28
閱讀 1831·2019-08-30 15:55