您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)如何從零開始搭建自動部署docker環(huán)境,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
從Docker改變使用動態(tài)庫后,DooD不再可行,而Dind依然可行。針對此改變,重新整理并記錄自動部署環(huán)境配置步驟。
此環(huán)境是實(shí)現(xiàn)微服務(wù)自動部署的基礎(chǔ),使用jenkins持續(xù)集成工具,并內(nèi)置了java和maven,并實(shí)現(xiàn)了容器內(nèi)運(yùn)行Docker命令的功能。
宿主機(jī)win10
虛擬機(jī)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
參考官方教程Get Docker CE for CentOS 可選項:更換源。官方源下載Docker可能很慢,更換成國內(nèi)的Docker源,比如阿里云的Docker源https://download.docker.com/linux/centos/docker-ce.repo
$ sudo service docker start $ sudo chkconfig docker on
從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
該Dockerfile已實(shí)現(xiàn):
安裝openjdk1.8、maven、jenkins、git
maven配置阿里云鏡像源
jenkins自啟
時區(qū)調(diào)整成中國上海
Dockerfile內(nèi)容如下:
FROM centos:centos7.4.1708 MAINTAINER "Simon Sun"<simon.sun.dev@hotmail.com> ADD 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 '/<\/mirrors>/i\<mirror>\n <id>nexus-aliyun<\/id>\n <mirrorOf>central<\/mirrorOf>\n <name>Nexus aliyun<\/name>\n <url>http://maven.aliyun.com/nexus/content/groups/public<\/url>\n<\/mirror>' /opt/apache-maven-3.5.2/conf/settings.xml USER jenkins CMD sudo service jenkins start && tail -F /var/log/jenkins/jenkins.log
docker build -t jeesun/java-jenkins .
docker run --privileged -i -t -v /var/run/docker.sock:/var/run/docker.sock -p 8080:8080 jeesun/java-jenkins
此時我已經(jīng)使用jenkins賬戶登錄到容器中,根據(jù)Dockerfile,此時jenkins已經(jīng)自啟,且目前正在運(yùn)行命令tail -F /var/log/jenkins/jenkins.log
。
按Ctrl+P+Q
退出bash。命令Ctrl+P+Q
保證退出容器不關(guān)閉容器。
訪問http://localhost:8080。當(dāng)然,因?yàn)槲已b的是minimal版的CentOS,沒有圖形界面,只能在宿主機(jī)上通過http://虛擬機(jī)ip:8080
來訪問??墒褂妹?code>ip addr查看虛擬機(jī)ip地址。
使用docker ps
查看CONTAINER ID。
使用docker exec -it container_id /bin/bash
進(jìn)入容器。
首次訪問該地址需要使用/var/lib/jenkins/secrets/initialAdminPassword
中的初始管理員密碼來解鎖jenkins。 執(zhí)行cat /var/lib/jenkins/secrets/initialAdminPassword
就可以知道密碼了。
按照頁面指示繼續(xù),jenkins會推薦下載一些插件。我默認(rèn)都安裝了。如果安裝失敗重試即可。然后就是填入新的管理員賬號密碼。完成后正式進(jìn)入jenkins管理頁面。
選擇新建,填入項目名稱,選擇構(gòu)建一個自由風(fēng)格的軟件項目。 構(gòu)建——》增加構(gòu)建步驟——》Execute shell——》填入docker run hello-world
——》保存。選擇立即構(gòu)建。如果不報錯,氣球?yàn)樗{(lán)色,說明成功。
從0開始搭建自動部署環(huán)境(續(xù))
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
優(yōu)先參考官方Manage Docker as a non-root user。
關(guān)閉虛擬機(jī)的selinux(可能有用)。參考查看 SELinux狀態(tài)及關(guān)閉SELinux。
在虛擬機(jī)中修改/var/run/docker.sock
的權(quán)限。(很危險?。。。?/p>
$ sudo chmod 777 /var/run/docker.sock
Failed to get D-Bus connection: Operation not permitted
忽略。
Couldn't connect to Docker daemon at http+unix://var/run/docker.sock - is it running?
權(quán)限問題。解決辦法同錯誤1。
以上就是如何從零開始搭建自動部署docker環(huán)境,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。
億速云公眾號
手機(jī)網(wǎng)站二維碼
Copyright ? Yisu Cloud Ltd. All Rights Reserved. 2018 版權(quán)所有
廣州億速云計算有限公司粵ICP備17096448號-1 粵公網(wǎng)安備 44010402001142號增值電信業(yè)務(wù)經(jīng)營許可證編號:B1-20181529