成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

docker學(xué)習(xí)

沈建明 / 2739人閱讀

摘要:入坑嘿嘿安裝官方安裝教程常用命令用構(gòu)建鏡像通過鏡像生成容器是交互式模式對應(yīng)是后臺啟動用本機(jī)的端口映射容器的端口進(jìn)入正在運行的容器內(nèi)查看鏡像查看所有容器狀態(tài)刪除容器刪除鏡像重啟構(gòu)建用官方鏡像啟動將存放數(shù)據(jù)庫信息的文件夾映射

Docker 入坑docker嘿嘿

ubantu安裝docker

官方安裝教程

docker常用命令

#用Dockerfile構(gòu)建鏡像
docker build -t tomsun28/ubantu:6.0 .

#通過docker鏡像生成docker容器
#-it是交互式模式(對應(yīng)-d是后臺啟動)
#-p 用本機(jī)的8080端口映射容器的80端口
docker run -it -p 8080:80 --name containerName tomsun28/ubantu:6.0


#進(jìn)入正在運行的容器內(nèi)
docker exec -it containerName /bin/bash


docker images 查看鏡像
docker ps -a  查看所有容器狀態(tài)
docker rm 刪除容器
docker rmi 刪除鏡像

systemctl restart docker 重啟docker

docker 構(gòu)建mariadb

#用官方鏡像啟動mariadb,將存放數(shù)據(jù)庫信息的文件夾/var/lib/mysql映射到本地
docker run -d -p 3306:3306 --restart=always --name mariadb -e TIMEZONE=Asia/Shanghai -v /mnt/dockerWorkspace/mysql:/var/lib/mysql 
-e MYSQL_ROOT_PASSWORD=admin  tomsun28/mariadb:1.0

#進(jìn)入mariadb容器
docker exec -it mariadb /bin/bash

#登錄數(shù)據(jù)庫
mysql -uroot -padmin

Dockerfile----基于Ubuntu基礎(chǔ)鏡像生成的Tomcat中間件鏡像

# VERSION 1.0.0
# 基礎(chǔ)鏡像為ubuntu:16.04
FROM ubuntu:16.04

MAINTAINER tomsun28  

ENV TOMCAT_VERSION 8.0.48


# 設(shè)置系統(tǒng)格式UTF8  
ENV LANG=C.UTF-8


# 設(shè)置系統(tǒng)時區(qū) shanghai
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone


# 更新源前的操作
RUN echo debconf shared/accepted-oracle-license-v1-1 select true | debconf-set-selections
RUN echo debconf shared/accepted-oracle-license-v1-1 seen true | debconf-set-selections

# 更新APT源 安裝依賴,安裝 oracle jdk8,wget,unzip,tar
RUN apt-get update && 
    apt-get install -y --no-install-recommends software-properties-common && 
    add-apt-repository ppa:webupd8team/java && 
    apt-get update && 
    apt-get install -y --no-install-recommends oracle-java8-installer  wget unzip tar && 
    rm -rf /var/lib/apt/lists/* && 
    rm -rf /var/cache/oracle-jdk8-installer

# 設(shè)置JAVA_HOME環(huán)境變量 
ENV JAVA_HOME /usr/lib/jvm/java-8-oracle

# 安裝tomcat
RUN wget --quiet --no-cookies http://apache.rediris.es/tomcat/tomcat-8/v${TOMCAT_VERSION}/bin/apache-tomcat-${TOMCAT_VERSION}.tar.gz -O /tmp/tomcat.tgz && 
tar xzvf /tmp/tomcat.tgz -C /opt && 
mv /opt/apache-tomcat-${TOMCAT_VERSION} /opt/tomcat && 
rm /tmp/tomcat.tgz && 
rm -rf /opt/tomcat/webapps/examples && 
rm -rf /opt/tomcat/webapps/docs && 
rm -rf /opt/tomcat/webapps/ROOT

# 配置tomcat user
ADD tomcat-users.xml /opt/tomcat/conf/

# tomcat環(huán)境變量
ENV CATALINA_HOME /opt/tomcat
ENV PATH $PATH:$CATALINA_HOME/bin

# 暴露端口
EXPOSE 8080
EXPOSE 8009

# 工作目錄
WORKDIR /opt/tomcat

# run 鏡像之后啟動tomcat
CMD ["/opt/tomcat/bin/catalina.sh", "run"]

*******************************
#tomcat配置文件 tomcat-users.xml



  
  
  
  
  
  
  


*******************************
#build生成鏡像

docker build -t tomsun28/tomcat:1.1 

Dockerfile----基于jenkins基礎(chǔ)鏡像生成容器內(nèi)jenkins用戶運行docker的jenkins鏡像

*******************Dockerfile*************

FROM jenkins:latest
MAINTAINER tomsun28 
#安裝jenkins插件
USER jenkins
COPY plugins.txt /usr/share/jenkins/plugins.txt
RUN /usr/local/bin/install-plugins.sh < /usr/share/jenkins/plugins.txt

USER root
ARG dockerGid=999

#將jenkins用戶放docker組,安裝gosu
RUN echo "docker:x:${dockerGid}:jenkins" >> /etc/group 
    && apt-get update &&  apt-get install -y gosu 
    && apt-get install -y libltdl7 
    && rm -rf /var/lib/apt/list/*


COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

*****************plugins.txt*******************

git:latest

*****************entrypoint.sh******************


#! /bin/bash
set -e
chown -R 1000 "$JENKINS_HOME"
exec gosu jenkins /bin/tini -- /usr/local/bin/jenkins.sh


*************build生成jenkins鏡像******************
將三個文件放入同一目錄下執(zhí)行:
docker build -t tomsun28/jenkins:1.1 .

詳細(xì)代碼更多鏡像Dockerfile可見我的github tomsun28"s dockerfile

使用Docker持續(xù)集成與自動化部署

自己用docker搭了一套項目開發(fā)的持續(xù)集成部署,在這個記錄下流程萬一又給忘了

#構(gòu)建Docker私有倉庫
docker run -d --restart=always --name registry 
-v /opt/dockerWorkspace/registry:/tmp/registry -p 5000:5000 tomsun28/registry:1.0
#向倉庫推送鏡像
docker push 127.0.0.1:5000/tomcat:1.0
#向倉庫拉取鏡像
docker pull 127.0.0.1:5000/tomcat:1.0
#server gave HTTP response to HTTPS client問題
touch /etc/docker/daemon.json
echo "{ "insecure-registries":["127.0.0.1:5000"] }" >> /etc/docker/daemon.json
#構(gòu)建Jenkins(1.6低版本jenkins)
docker run -d -p 8080:8080 --name jenkins --restart=always 
-v /opt/dockerWorkspace/jenkins_home:/var/jenkins_home 
-v /var/run/docker.sock:/var/run/docker.sock  tomsun28/jenkins:1.0
#參數(shù)/opt/dockerWorkspace/jenkins_home:/var/jenkins_home將目錄映射到本地磁盤
#參數(shù)/var/run/docker.sock:/var/run/docker.sock映射本地docker,這樣就能在jenkins容器使用docker
默認(rèn)用戶密碼 admin/admin
#構(gòu)建Jenkins(2.6新版本jenkins)
docker run -d -p 8080:8080 -p 50000:50000 --name jenkins --restart=always 
-v /opt/dockerWorkspace/jenkins_home:/var/jenkins_home 
-v $(which docker):/usr/bin/docker 
-v /var/run/docker.sock:/var/run/docker.sock  tomsun28/jenkins:1.1

小插曲:baidu云過期了轉(zhuǎn)便宜的jd云,在jd云下運行的jenkins容器提交表單服務(wù)器無響應(yīng),其他跳轉(zhuǎn)是好的,各種排查了一天哎,最后實在沒辦法提交issue給jd馬上回了是docker的MTU和它們云服務(wù)器MTU不一樣會導(dǎo)致有時docker網(wǎng)絡(luò)不通。。。。。。。。只想說日狗d了

Dockerfile tomcat項目所對應(yīng)的tomcat鏡像構(gòu)建Dockerfile,將此Dockerfile放在當(dāng)前項目下,示例項目名為WebHelloWorld

#VERSION 1.0.0
#基礎(chǔ)鏡像為tomcat,從我搭建鏡像倉庫拉取tomcat鏡像
FROM tomsun28/tomcat:1.1

#簽名
MAINTAINER tomsun28 "[email protected]"


#加入WAR包到tomcat下(1),官方tomcat鏡像的tomcat位置在/usr/local/tomcat
RUN rm -rf /usr/local/tomcat/webapps
ADD ./target/WebHelloWorld.war /usr/local/tomcat/webapps/WebHelloWorld.war

#加入WAR包到tomcat下(2)自己的tomcat:1.1鏡像的tomcat位置在/opt/tomcat
RUN rm -rf /opt/tomcat/webapps/WebHelloWorld*
ADD ./target/WebHelloWorld.war /opt/tomcat/webapps/WebHelloWorld.war

Jenkins細(xì)節(jié)配置

配置->項目名稱:最好為github上代碼的項目名稱,必須小寫
配置->源碼管理->Git:URL為github上的項目clone url,下面默認(rèn)master分支
配置->觸發(fā)遠(yuǎn)程構(gòu)建選上->身份證令牌:eg:hahaha

用戶->設(shè)置->查看API Token:    userID=xxxx,apiToken=xxxx
這兩個github配置會用到

Jenkins配置構(gòu)建步驟shell腳本

#!/bin/bash

#build in jenkins sh

#docker docker hub倉庫地址,之后把生成的鏡像上傳到  registry or docker hub
REGISTRY_URL=127.0.0.1:5000
#docker login --username tomsun28 --password xxxx

#根據(jù)時間生成版本號
TAG=$REGISTRY_URL/$JOB_NAME:`date +%y%m%d-%H-%M`

#使用maven 鏡像進(jìn)行編譯 打包出 war 文件
docker run --rm --name mvn -v /opt/dockerWorkspace/maven:/root/.m2 
-v /opt/dockerWorkspace/jenkins_home/workspace/$JOB_NAME:/usr/src/mvn -w /usr/src/mvn/ 
tomsun28/maven:1.0 mvn clean install -Dmaven.test.skip=true

#使用放在項目下面的Dockerfile打包生成鏡像
docker build -t $TAG $WORKSPACE/.

docker push $TAG
docker rmi $TAG

#判斷之前運行的容器是否還在,在就刪除
if docker ps -a | grep -i $JOB_NAME;then
docker rm -f $JOB_NAME
fi

#用最新版本的鏡像運行容器

docker run -d -p 80:8080 --name $JOB_NAME -v /opt/dockerWorkspace/tomcat/$JOB_NAME/logs:/opt/tomcat/logs $TAG

github配置

對應(yīng)項目->settings->Webhooks->add webhook:
Payload URL = http://userID:[email protected]:8080/job/webhelloworld/build?token=hahaha
userID,apiToken為上面Jenkins的userID,apiToken的值
182.61.59.000:8080為Jenkins的IP:端口
WebHelloWorld為Jenkins的項目名
hahaha為上面Jenkins設(shè)置的身份令牌

分享一波阿里云代金券快速上云



持續(xù)入坑


參考來自
使用Docker構(gòu)建持續(xù)集成與自動部署的Docker集群
Running Docker in Jenkins (in Docker)


轉(zhuǎn)載請注明 from tomsun28

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/27217.html

相關(guān)文章

  • Linux 學(xué)習(xí)筆記(四):Docker

    摘要:系統(tǒng)有兩個程序服務(wù)端和客戶端。其中服務(wù)端是一個服務(wù)進(jìn)程,管理著所有的容器??蛻舳藙t扮演著服務(wù)端的遠(yuǎn)程控制器,可以用來控制的服務(wù)端進(jìn)程。守護(hù)進(jìn)程會處理復(fù)雜繁重的任務(wù),例如建立運行發(fā)布你的容器??蛻舳撕褪刈o(hù)進(jìn)程之間通過或者進(jìn)行通信。 預(yù)期學(xué)習(xí)目標(biāo) Docker基本概念 配置本地Docker環(huán)境 容器的生命周期與配置 端口映射和容器鏈接 利用volume保存持久化容器數(shù)據(jù) 檢查容器日志 監(jiān)...

    ssshooter 評論0 收藏0
  • 慕課網(wǎng)_《Docker入門》學(xué)習(xí)總結(jié)

    摘要:時間年月日星期六說明本文部分內(nèi)容均來自慕課網(wǎng)。必填用于執(zhí)行命令,當(dāng)執(zhí)行完畢后,將產(chǎn)生一個新的文件層??蛇x指定此鏡像啟動時默認(rèn)執(zhí)行命令。可選用于指定需要暴露的網(wǎng)絡(luò)端口號??蛇x向鏡像中掛載一個卷組。 時間:2017年09月16日星期六說明:本文部分內(nèi)容均來自慕課網(wǎng)。@慕課網(wǎng):http://www.imooc.com 教學(xué)源碼:無 學(xué)習(xí)源碼:無 第一章:課程簡介 1-1 課程介紹 Docke...

    CoorChice 評論0 收藏0
  • Docker學(xué)習(xí)之路(四)守護(hù)式容器

    摘要:,,當(dāng)前使用的容器名為,為。守護(hù)式容器沒有交互式會話,適合運行應(yīng)用程序和服務(wù)。大多數(shù)時候是需要以守護(hù)式來運行容器。與之前創(chuàng)建的容器相比,沒有返回會話,只是返回了一個容器。刪除容器運行中的容器無法刪除,必須先停止。 windows 7, docker 1.3.2,當(dāng)前使用的容器名為aoct,ID為614122c0aabb。 開啟已經(jīng)停止的容器 可以start + 容器名 $ sud...

    jay_tian 評論0 收藏0
  • Docker學(xué)習(xí)之路(六)用commit命令創(chuàng)建鏡像

    摘要:郵件激活后,可以測試登錄這條命令會完成登錄,并將認(rèn)證信息報錯起來供后面使用。所以先用命令退出容器,再運行命令命令中,指定了要提交的修改過的容器的目標(biāo)鏡像倉庫鏡像名。提交的知識創(chuàng)建容器的鏡像與容器的當(dāng)前狀態(tài)之間的差異部分,很輕量。 假期快要結(jié)束了,干點正事,接著Docker的學(xué)習(xí)。 構(gòu)建鏡像 構(gòu)建鏡像的兩種方法: 使用docker commit 命令 使用docker build...

    KoreyLee 評論0 收藏0
  • Docker學(xué)習(xí)之路(五)鏡像的基本操作

    摘要:一個鏡像可以放到另一個京廣線的頂部,位于下面的鏡像稱為父鏡像,最底部的稱為基礎(chǔ)鏡像。鏡像是基于聯(lián)合文件系統(tǒng)的一種層式的結(jié)構(gòu),由一系列指令一步步構(gòu)建處理。拉取鏡像使用命令啟動一個鏡像時,會檢查本地是否存在該鏡像。 什么是鏡像 Docker鏡像時由文件系統(tǒng)疊加而成,最底端是一個引導(dǎo)文件系統(tǒng),即bootfs,這很像典型的Linux/Unix的引導(dǎo)文件系統(tǒng)。Docker用戶幾乎永遠(yuǎn)不會和引導(dǎo)...

    yunhao 評論0 收藏0
  • [原]海納百川 有容乃大:SparkR與Docker的機(jī)器學(xué)習(xí)實戰(zhàn)

    摘要:類似包中的功能這很好的解決了的大數(shù)據(jù)級瓶頸問題。也支持分布式的機(jī)器學(xué)習(xí)算法,比如使用機(jī)器學(xué)習(xí)庫。部署本文將通過講解如何快速部署容器,并通過一些簡單的機(jī)器學(xué)習(xí)例子展示如何使用這個航母級別的組合拳。 showImg(https://segmentfault.com/img/remote/1460000004838121); 題圖為美國尼米茲核動力航空母艦 介紹 大數(shù)據(jù)時代,我們常常面對海量...

    CHENGKANG 評論0 收藏0

發(fā)表評論

0條評論

沈建明

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<