<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                Dockerfiles: 標準鏡像、基礎鏡像和服務鏡像 === 這是一個包含所有公用鏡像構建過程的倉庫,主要分三部分:Dockerfile、公共資源、構建腳本。 所有維護這個倉庫的人員都應該提供并及時更新自己的文檔。 ![Docker logo](https://i.imgur.com/AZd6puj.png) ## Dockerfile --- 包含:library、base、service 結構: ```bash . |-- base # 父類 | |-- centos # 子類 | | `-- centos=version-zh.df # 模糊版本 | |-- gradle | | `-- gradle=2.14.1.df # 明確版本 | |-- jdk | | `-- jdk=8u101.df | `-- tomcat | |-- src # 私有資源(可選) | | |-- docker-entrypoint-kazoo.sh | | `-- docker-entrypoint.sh | |-- tomcat=8.0.36.df |-- library | |-- centos | |-- centos=7.2.1511.df | |-- centos=latest.df # 最后版本 | `-- src | `-- centos-7.2.1511-docker.tar.xz |-- service |-- elasticsearch |-- elasticsearch=2.3.5.df `-- src `-- docker-entrypoint.sh - library:包含各類標準鏡像,基本上屬于官方的標準流程,該動極少且不做定制。 - base:包含各類基礎鏡像,根據需求做定制,不修改原有結構。 - service:包含各類服務鏡像,根據需求做定制,盡量不修改原有結構。 ``` 用途:規整鏡像Dockerfile的存放結構 ## 公共資源 --- 包含:resources 結構: ```bash . `-- sources |-- apache-tomcat-8.0.36.tar.gz |-- elasticsearch-2.3.5.tar.gz |-- gradle-2.14.1-bin.zip `-- jdk-8u101-linux-x64.tar.gz ``` 用途:存放鏡像構建過程中的依賴文件 ## 構建腳本 --- 包含:build.sh、build.list 結構: - build.sh: ```bash #!/bin/bash cd `dirname ${BASH_SOURCE}` # 切換到工作目錄 suffix="2257b4561a43e400e437b662529255e3" # 標簽 [ -n "${1}" ] && DOCKER_REGISTRY="${1%%/*}/" # docker倉庫 os="centos" fs="simplehttpserver" dns="bind" mnt=`pwd`/resources DOCKER_BUILD_LIST=`grep -v '^ *#' build.list` # 取得任務 # 構建最簡單的系統鏡像 sed -i '/^FROM/d' library/${os}/${os}=latest.df sed -i "1iFROM scratch" library/${os}/${os}=latest.df docker build -t ${os}:latest -f library/${os}/${os}=latest.df library/${os} # 構建最簡單的文件服務鏡像 sed -i '/^FROM/d' library/${fs}/${fs}=latest.df sed -i "1iFROM ${os}" library/${fs}/${fs}=latest.df docker build -t ${fs}:latest -f library/${fs}/${fs}=latest.df library/${fs} # 構建最簡單的解析服務鏡像 sed -i '/^FROM/d' library/${dns}/${dns}=latest.df sed -i "1iFROM ${os}" library/${dns}/${dns}=latest.df docker build -t ${dns}:latest -f library/${dns}/${dns}=latest.df library/${dns} # 運行文件服務并掛載資源 docker stop ${fs}-${suffix} && docker rm ${fs}-${suffix} || echo docker run -d -P --name ${fs}-${suffix} -v ${mnt}:/mnt ${fs}:latest fsIp=`docker inspect -f '{{.NetworkSettings.IPAddress}}' ${fs}-${suffix}` # 運行解析服務 docker stop ${dns}-${suffix} && docker rm ${dns}-${suffix} || echo docker run -d -P --name ${dns}-${suffix} ${dns}:latest docker exec ${dns}-${suffix} bash -c "echo '${fs} A ${fsIp}' >> /var/named/named.localhost" docker restart ${dns}-${suffix} dnsIp=`docker inspect -f '{{.NetworkSettings.IPAddress}}' ${dns}-${suffix}` # 修改宿主機dns sed -i "/${suffix}/d" /etc/resolv.conf sed -i "1inameserver ${dnsIp} # ${suffix}" /etc/resolv.conf # 構建鏡像 for LINE in ${DOCKER_BUILD_LIST} do FROM_IMAGE=`echo ${LINE} | awk -F',' '{print $1}'` TO_IMAGE=`echo ${LINE} | awk -F',' '{print $2}'` DOCKERFILE_FILE=`echo ${LINE} | awk -F',' '{print $3}'` DOCKERFILE_PATH=${DOCKERFILE_FILE%/*} [ -n "${DOCKER_REGISTRY}" ] && docker pull ${DOCKER_REGISTRY}${TO_IMAGE} || echo "${DOCKER_REGISTRY}${TO_IMAGE} not found!" sed -i '/^FROM/d' ${DOCKERFILE_FILE} if [ 'scratch' != "${FROM_IMAGE}" ] then sed -i "1iFROM ${DOCKER_REGISTRY}${FROM_IMAGE}" ${DOCKERFILE_FILE} else sed -i "1iFROM ${FROM_IMAGE}" ${DOCKERFILE_FILE} fi docker build -t ${DOCKER_REGISTRY}${TO_IMAGE} -f ${DOCKERFILE_FILE} ${DOCKERFILE_PATH} [ -n "${DOCKER_REGISTRY}" ] && docker push ${DOCKER_REGISTRY}${TO_IMAGE} done # 清理 sed -i "/${suffix}/d" /etc/resolv.conf docker stop ${dns}-${suffix} && docker rm ${dns}-${suffix} || echo docker stop ${fs}-${suffix} && docker rm ${fs}-${suffix} || echo ``` - build.list: ```bash scratch,library/centos:7.2.1511,library/centos/centos=7.2.1511.df base/centos:7.2.1511-zh,base/jdk:8u101,base/jdk/jdk=8u101.df base/jdk:8u101,base/gradle:2.14.1-8u101,base/gradle/gradle=2.14.1.df base/jdk:8u101,base/tomcat:8.0.36-8u101,base/tomcat/tomcat=8.0.36.df - 以","分隔為三部分。第一部分:上層鏡像,第二部分:目標鏡像,第三部分:Dockerfile位置。 ``` 用途:執行build.sh,根據build.list文件所指定的關系,依次構建鏡像。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看