最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Shell 命令啟動Docker Container的實(shí)現(xiàn)

 更新時間:2022年02月25日 11:14:14   作者:vio_dzyls  
本文主要介紹了Shell 命令啟動Docker Container的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

Linux虛擬機(jī)重啟后,都要手動啟動多個Docker Container,著實(shí)麻煩,使用Shell命令可以減去這個麻煩。

創(chuàng)建文件,添加可執(zhí)行權(quán)限

touch startcontiner.sh
chomd +x startcontainer.sh

編寫startcontainer.sh

#!/bin/sh ? ? ? ? ? ? ? ? ? ? ? ? ?
#chkconfig: 35 90 80 ? ? ? ? ? ? ??
#description: start docker container
containerNames="mysql redis rabbitmq mongo zookeeper"
# 根據(jù)名稱啟動Docker Contianers
function startContainer(){
? ? sudo docker start $1
}
# 遍歷containerNames
for containerName in ${containerNames}
do
? ? ? ? echo "Container ${containerName} start"
? ? ? ? startContainer ${containerName}
done

啟動并測試

./startcontainer.sh

PS:docker 批量啟動項(xiàng)目 shell 腳本

Dockerfile

FROM java:8?
VOLUME /tmp?
COPY blockchain-core-0.1.jar /project/app.jar
CMD java -jar /project/app.jar?

文件目錄

docker/
├── logs
│ ? └── logs
│ ? ? ? ├── block-chain-core
│ ? ? ? │ ? ├── 2018-11-23
│ ? ? ? │ ? │ ? ├── access.0.log
│ ? ? ? │ ? │ ? ├── debug.0.log
│ ? ? ? │ ? │ ? ├── detail.0.log
│ ? ? ? │ ? │ ? ├── error.0.log
│ ? ? ? │ ? │ ? ├── execute.0.log
│ ? ? ? │ ? │ ? └── info.0.log
│ ? ? ? │ ? └── 2018-11-26
│ ? ? ? │ ? ? ? ├── access.0.log
│ ? ? ? │ ? ? ? ├── debug.0.log
│ ? ? ? │ ? ? ? ├── detail.0.log
│ ? ? ? │ ? ? ? ├── error.0.log
│ ? ? ? │ ? ? ? ├── execute.0.log
│ ? ? ? │ ? ? ? └── info.0.log
│ ? ? ? └── gateway-zuul
│ ? ? ? ? ? ├── 2018-11-23
│ ? ? ? ? ? │ ? ├── access.0.log
│ ? ? ? ? ? │ ? ├── debug.0.log
│ ? ? ? ? ? │ ? ├── detail.0.log
│ ? ? ? ? ? │ ? ├── error.0.log
│ ? ? ? ? ? │ ? ├── execute.0.log
│ ? ? ? ? ? │ ? └── info.0.log
│ ? ? ? ? ? └── 2018-11-26
│ ? ? ? ? ? ? ? ├── access.0.log
│ ? ? ? ? ? ? ? ├── debug.0.log
│ ? ? ? ? ? ? ? ├── detail.0.log
│ ? ? ? ? ? ? ? ├── error.0.log
│ ? ? ? ? ? ? ? ├── execute.0.log
│ ? ? ? ? ? ? ? └── info.0.log
├── projects
│ ? ├── blockchain-core
│ ? │ ? ├── app.jar
│ ? │ ? ├── blockchain-core-0.1.jar
│ ? │ ? └── Dockerfile
│ ? ├── eureka-server
│ ? │ ? ├── Dockerfile
│ ? │ ? └── eureka-server-1.0.jar
│ ? └── gateway-zuul
│ ? ? ? ├── app.jar
│ ? ? ? ├── Dockerfile
│ ? ? ? └── gateway-zuul-0.0.1.jar
├── run

腳本

#!/bin/bash

#serverList=("eureka-server" "gateway-zuul" "blockchain-core" "blockchain-order");
#------------配置 start-------------
# 項(xiàng)目目錄
projectsDir="/opt/docker/projects"
# 日志輸出目錄
logsDir="/opt/docker/logs"
#------------配置 end-------------

serverList=`ls ${projectsDir}`;
commond=$1;
serverName=$2;
port=$3;

# 啟動服務(wù)方法 第一個參數(shù)為 服務(wù)名,第二個參數(shù)為 端口
function startServer(){
?? ?echo "--------------啟動項(xiàng)目開始:$1 ?$2"
?? ?serverCount=`docker ps -f status=exited | grep $1 |wc -l`;
?? ??? ?# 判斷是否已經(jīng)啟動過,且端口為默認(rèn)端口
? ? ? ? if [[ ${serverCount} > 0 && $2 == "" ]];then
? ? ? ? ? ? ? ? echo "docker start 啟動項(xiàng)目:$1"
? ? ? ? ? ? ? ? docker start $1
? ? ? ? else?
? ? ? ? ?? ??? ?# 判斷是否生成了鏡像
? ? ? ? ?? ??? ?imageCount=`docker images | grep $1 | wc -l`;

? ? ? ? ?? ??? ?if [[ ${imageCount} > 0 ]];then
?? ? ? ? ? ? ? ? ? ?echo "docker run 啟動項(xiàng)目: $1"
?? ? ? ? ? ? ? ? ? ?# 復(fù)制項(xiàng)目jar包為 app.jar
?? ? ? ? ? ? ? ? ? ?currProjectDir=$projectsDir/$1
?? ? ? ? ? ? ? ? ? ?cd $currProjectDir
?? ? ? ? ? ? ? ? ? ?cp `ls | grep $1` "app.jar"
?? ? ? ? ? ? ? ? ? ?# 執(zhí)行命令
?? ? ? ? ? ? ? ? ? ?if [[ $2 == "" ]];then
?? ? ? ? ? ? ? ? ? ??? ?echo "docker run ?-d -v ${logsDir}:/opt -v $currProjectDir:/project ?--name $1 $1 "
?? ? ? ? ? ? ? ? ? ??? ?docker run ?-d -v ${logsDir}:/opt -v $currProjectDir:/project ?--name $1 $1?
?? ? ? ? ? ? ? ? ? ?? ?else
?? ? ? ? ? ? ? ? ? ?? ??? ?echo "docker run ?-d -p $2:$2 -v ${logsDir}:/opt -v ${currProjectDir}:/project --name $1_$2 $1 java -jar /project/app.jar --server.port=$2"
?? ? ? ? ? ? ? ? ? ?? ??? ?docker run ?-d -p $2:$2 -v ${logsDir}:/opt -v ${currProjectDir}:/project --name $1_$2 $1 java -jar /project/app.jar --server.port=$2
?? ? ? ? ? ? ? ? ? ?? ?fi
?? ? ? ? ? ? ? ? else
?? ? ? ? ? ? ? ? ?? ?echo "生成 $1 項(xiàng)目鏡像:$1"
?? ? ? ? ? ? ? ? ?? ?
?? ? ? ? ? ? ? ? ?? ??? ?cd "${projectsDir}/$1"
?? ? ? ? ? ? ? ? ?? ?
?? ? ? ? ? ? ? ? ?? ?docker build -t $1 .

?? ? ? ? ? ? ? ? ?? ?# 再次調(diào)用該方法
?? ? ? ? ? ? ? ? ?? ?startServer $1 $2
?? ? ? ? ? ? ? ?fi
? ? ? ? fi
}

# 根據(jù)項(xiàng)目名獲取端口號 參數(shù)為項(xiàng)目名
function getPort(){
?? ?tempProjectDirName=`ls $projectsDir | grep $1`
?? ?OLD_IFS="$IFS";
?? ??? ?IFS="_"
?? ??? ?arr=($tempProjectDirName)
?? ??? ?IFS="$OLD_IFS"
?? ??? ?echo ${arr[1]}
?? ?return ${arr[1]}
}


if ?[[ ${commond} == "-help" ]];then?
?? ?echo " "
?? ?echo "參數(shù)1:執(zhí)行命令"
?? ?echo "?? ??? ?1. start?? ?啟動"
?? ?echo "?? ??? ?2. stop?? ??? ?停止"
?? ?echo "?? ??? ?3. restart?? ?重啟"
?? ?echo "參數(shù)2:服務(wù)名"
?? ?echo "?? ??? ?1.eureka-server?? ??? ?服務(wù)注冊中心"
?? ?echo "?? ??? ?2.gateway-zuul?? ??? ?網(wǎng)關(guān)服"
?? ?echo "?? ??? ?3.blockchain-core?? ?系統(tǒng)服務(wù)服"
?? ?echo "?? ??? ?4.blockchain-order?? ?訂單服"
?? ?echo "?? ??? ?5.all?? ??? ??? ?全部"
?? ?exit;
elif [[ ${commond} == "" || ${serverName} == "" ]];then?
?? ?echo "錯誤:請傳入啟動參數(shù)!詳情:-help"
? ? ? ? exit;?
fi

# 單個項(xiàng)目操作
if [[ ${serverName} != "all" && ${commond} == "start" ]];then
?? ?
?? ?startServer ${serverName} ${port}
?? ?
elif [[ ? ${serverName} != "all" && ${commond} != "start" ]];then
?? ?echo "開始${commond}容器中的項(xiàng)目:${serverName}"
?? ?docker ${commond} `docker ps | grep ${serverName} | awk -F" ? ? ? ?" '{print $1 }'`
fi

# 全部項(xiàng)目操作
# IFS=";\n"
if [[ ${serverName} == "all" && ${commond} == "start" ?]];then
?? ?for server in ${serverList[@]}
?? ?do
?? ??? ?startServer ${server}?
?? ?
?? ?done
elif [[ ${serverName} == "all" && ${commond} != "start" ]]; then
?? ?for server in ${serverList[@]}
?? ?do
?? ??? ?echo "開始 ${commond} 容器中的項(xiàng)目:${server}"
?? ??? ?docker ${commond} `docker ps | grep ${serverName} | awk -F" ? ? ? ?" '{print $1 }'`
?? ?
?? ?done
fi

echo "執(zhí)行完畢!"

到此這篇關(guān)于Shell 命令啟動Docker Container的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Shell啟動Docker Container內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 找出Linux中所有真實(shí)用戶的命令詳解

    找出Linux中所有真實(shí)用戶的命令詳解

    接觸過 Linux 的小伙伴們都知道在 Linux (或者說類 Unix)中,有三種類型的用戶,超級用戶,系統(tǒng)用戶和普通用戶,那么如何快速找出 Linux 中的真實(shí)用戶呢,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2024-02-02
  • Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)

    Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn)

    這篇文章主要介紹了Shell腳本批量重命名文件后綴的3種實(shí)現(xiàn),本文分別使用find + xargs +sed、for循環(huán)、rename等3種方法實(shí)現(xiàn)重命名文件后綴,需要的朋友可以參考下
    2014-09-09
  • 詳解shell 函數(shù)定義與調(diào)用

    詳解shell 函數(shù)定義與調(diào)用

    這篇文章主要介紹了shell 函數(shù)定義與調(diào)用的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)shell,感興趣的朋友可以了解下
    2020-09-09
  • Linux里awk中split函數(shù)的用法小結(jié)

    Linux里awk中split函數(shù)的用法小結(jié)

    The awk function split(s,a,sep) splits a string s into an awk array a using the delimiter sep
    2013-03-03
  • linux命令返回值的含義解析

    linux命令返回值的含義解析

    這篇文章主要介紹了linux命令返回值的含義,linux命令執(zhí)行后無論成功與否都有一個返回值,如果為 0,則表示命令執(zhí)行成功,其它值則表示錯誤,具體代碼及含義介紹大家通過本文學(xué)習(xí)下吧
    2018-06-06
  • Shell編程之變量的高級用法詳解

    Shell編程之變量的高級用法詳解

    這篇文章主要介紹了Shell編程之變量的高級用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 實(shí)時查看系統(tǒng)流量的Shell腳本分享

    實(shí)時查看系統(tǒng)流量的Shell腳本分享

    這篇文章主要介紹了實(shí)時查看系統(tǒng)流量的Shell腳本分享,本文直接給出實(shí)現(xiàn)代碼,使用時保存到一個sh文件中并運(yùn)行即可,需要的朋友可以參考下
    2014-12-12
  • 關(guān)于Shell腳本效率優(yōu)化的一些個人想法

    關(guān)于Shell腳本效率優(yōu)化的一些個人想法

    很想像之前的一片Mysql全面優(yōu)化詳解那樣子寫一篇全面的優(yōu)化文章,但是苦于沒有相關(guān)書籍參考,也沒有發(fā)現(xiàn)網(wǎng)絡(luò)牛人有總結(jié)帖或文章之類的,所以就根據(jù)個人理解和經(jīng)驗(yàn)寫一些能優(yōu)化程序效率的東西吧。這篇是不敢稱全面的
    2012-09-09
  • Linux?shell進(jìn)行文件解壓,復(fù)制和移動詳解

    Linux?shell進(jìn)行文件解壓,復(fù)制和移動詳解

    Linux下進(jìn)行文件的解壓、復(fù)制、移動應(yīng)該是最常見的操作了。尤其是我們在項(xiàng)目中使用大量的數(shù)據(jù)集文件時。本文我們就來細(xì)數(shù)用Shell進(jìn)行文件操作的這些坑
    2022-05-05
  • Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail)

    Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail)

    這篇文章主要介紹了Linux文本查看命令及其選項(xiàng)詳解(cat,head,tail),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08

最新評論

原平市| 新津县| 大城县| 崇义县| 年辖:市辖区| 鞍山市| 河曲县| 聂拉木县| 蓝田县| 邵阳市| 平乡县| 吉木萨尔县| 龙泉市| 尚义县| 诸城市| 那曲县| 石家庄市| 屯门区| 黎城县| 红安县| 元谋县| 阜新市| 嵊泗县| 万安县| 禹城市| 临夏县| 北票市| 涟水县| 土默特右旗| 板桥市| 宣武区| 青河县| 清河县| 高平市| 夹江县| 南丹县| 张掖市| 洪洞县| 永德县| 南岸区| 尚义县|