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

shell自動(dòng)拉取鏡像并運(yùn)行容器的shell腳本

 更新時(shí)間:2022年06月09日 09:05:59   作者:小黃瓜要編程  
本文主要介紹了shell自動(dòng)拉取鏡像并運(yùn)行容器的shell腳本,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

情景再現(xiàn)

最近有一個(gè)部署服務(wù),是具有絕對(duì)外網(wǎng)隔離的環(huán)境,不能構(gòu)建自動(dòng)化的發(fā)布服務(wù),項(xiàng)目大體完工,但是改動(dòng)的細(xì)節(jié)還是很多很小,存在一個(gè)頻繁的發(fā)版情況。為了方便的發(fā)版,我只能基于shell構(gòu)建一個(gè)簡(jiǎn)單的自動(dòng)化腳本

開(kāi)發(fā)環(huán)境

腳本編輯工具:win10+vscode
腳本運(yùn)行環(huán)境:centos7

開(kāi)發(fā)過(guò)程

shell腳本基礎(chǔ)
Shell是一個(gè)用 C 語(yǔ)言編寫的程序。Shell 既是一種命令語(yǔ)言(腳本),又是一種程序設(shè)計(jì)語(yǔ)言。
簡(jiǎn)單理解就是和windos中cmd一樣的一種命令語(yǔ)言,一種批處理的腳本類似的東西。

shell腳本的首行指定了shell腳本解釋器的路徑,而且這個(gè)指定路徑只能放在文件的第一行

#!/bin/bash

查看自己linux系統(tǒng)的默認(rèn)解析:echo $SHELL

[root@localhost ~]# echo $SHELL
/bin/bash

echo 輸出文本,相當(dāng)于print命令,console命令

echo -e “\033[32m 綠色文字 \033[0m”

會(huì)輸出帶有顏色的文字,可以將我們自己的輸出和docker的輸出加以區(qū)分

在這里插入圖片描述

完成代碼塊,運(yùn)行腳本,輸入鏡像版本,將自動(dòng)拉取指定版本鏡像并運(yùn)行創(chuàng)建一個(gè)新的容器

#!/bin/bash
cml_version=""
cml_url="registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_2022${cml_version}_1"
sudo echo -e "\033[32m --start-- \033[0m"
sudo echo -e "\033[33m please input version: \033[0m"
read -r cml_version
cml_url="registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_2022${cml_version}_1"
sudo echo -e "\033[33m cml_version: $cml_url \033[0m"
sudo docker pull "$cml_url"
sudo echo -e "\033[32m 1.pull image from route \033[0m"
sudo docker stop c_llpcmlapi 
sudo docker rm c_llpcmlapi 
sudo echo -e "\033[32m 2.stop&rm c_llpcmlapi \033[0m"
sudo docker rmi i_llpcmlapi
sudo echo -e "\033[32m 3.rmi i_llpcmlapi \033[0m"
sudo docker tag "$cml_url" i_llpcmlapi 
sudo echo -e "\033[32m 4.tag image  \033[0m"
docker run -di   -v /home/llp_docker/llpcmlapi/appsettings.json:/appsettings.json --name c_llpcmlapi -p 8089:80 i_llpcmlapi 
sudo echo -e "\033[32m 5.run c_llpcmlapi \033[0m"
sudo docker ps 

遇到的問(wèn)題

報(bào)錯(cuò):$‘\r’: command not found

解決: 由于shell腳本很簡(jiǎn)單,我直接在windos下用記事本寫了一個(gè).sh的文件,執(zhí)行的時(shí)候重視報(bào)錯(cuò)各種錯(cuò)誤,而且有時(shí)可能執(zhí)行成功,有時(shí)會(huì)失敗,猜測(cè)可能是編碼的問(wèn)題,于是用vscode打開(kāi),重新保存,還是不行,后來(lái)了解到原來(lái)windows下編譯的shell文件,每一行的結(jié)尾是\n\r,而在linux下文件的結(jié)尾是\n,所以我們需要替換掉\r

cat -v 顯示window下的回車字符
tr -d ‘\r’ < 原始文件 > 新文件:替換文件中的回車字符

[root@localhost llpcode]# cat -v cmlapi.sh
^M
sudo echo -e "\033[32m --start-- \033[0m"^M
sudo docker pull registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_20220603_1 ^M
sudo echo -e "\033[32m 1.pull image from route \033[0m"^M
sudo docker rmi i_llpcmlapi^M
sudo echo -e "\033[32m 2.rmi i_llpcmlapi \033[0m"^M
sudo docker tag registry.cn-hangzhou.aliyuncs.com/xhgycf/xhg.cml.api:XHG.CML_20220603_1 i_llpcmlapi ^M
sudo echo -e "\033[32m 3.tag image  \033[0m"^M
sudo docker stop c_llpcmlapi ^M
sudo docker rm c_llpcmlapi ^M
sudo echo -e "\033[32m 4.stop&rm c_llpcmlapi \033[0m"^M
docker run -di   -v /home/llp_docker/llpcmlapi/appsettings.json:/appsettings.json --name c_llpcmlapi -p 8089:80 i_llpcmlapi ^M
sudo echo -e "\033[32m 5.run c_llpcmlapi \033[0m"^M
sudo docker ps [root@localhost llpcode]# tr -d '\r' < cmlapi.sh > cmlapi_.sh
[root@localhost llpcode]# ls
blogcore  cmlapi_.sh  cmlapi.sh  vue_xhg_cml

效果如下

在這里插入圖片描述

報(bào)錯(cuò):read without -r will mangle backslashes.

解決:shell腳本缺少權(quán)限, chmod +x 腳本名稱 進(jìn)行權(quán)限賦值

報(bào)錯(cuò):read without -r will mangle backslashes.

解決:Read將解釋空格和換行符之前的反斜杠,通常您只想讀取數(shù)據(jù),這就是read -r所做的

報(bào)錯(cuò):$Permission denied

解決:shell腳本缺少權(quán)限, chmod +x 腳本名稱 進(jìn)行權(quán)限賦值

到此這篇關(guān)于shell自動(dòng)拉取鏡像并運(yùn)行容器的shell腳本的文章就介紹到這了,更多相關(guān)shell自動(dòng)拉取鏡像并運(yùn)行 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • linux下passwd命令設(shè)置修改用戶密碼的方法

    linux下passwd命令設(shè)置修改用戶密碼的方法

    下面小編就為大家?guī)?lái)一篇linux下passwd命令設(shè)置修改用戶密碼的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-02-02
  • 詳解bash中的退出狀態(tài)機(jī)制

    詳解bash中的退出狀態(tài)機(jī)制

    這篇文章主要介紹了詳解bash中的退出狀態(tài)機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Linux中使用locate和find進(jìn)行不區(qū)分大小寫的文件搜索

    Linux中使用locate和find進(jìn)行不區(qū)分大小寫的文件搜索

    在日常使用計(jì)算機(jī)的過(guò)程中,尤其是處理大量文件時(shí),快速找到特定文件變得尤為重要,Linux系統(tǒng)提供了許多命令行工具,其中“l(fā)ocate”和“find”是兩個(gè)常用的文件搜索工具,本文給大家介紹了如何在Linux中使用locate和find進(jìn)行不區(qū)分大小寫的文件搜索
    2024-05-05
  • shell學(xué)習(xí)教程獲取命令行參數(shù)示例

    shell學(xué)習(xí)教程獲取命令行參數(shù)示例

    這篇文章主要介紹了shell學(xué)習(xí)中的基礎(chǔ)知識(shí)的獲取命令行參數(shù)示例,需要的朋友可以參考下
    2014-03-03
  • Bash?中?nohup?與?&?的區(qū)別及用法詳解

    Bash?中?nohup?與?&?的區(qū)別及用法詳解

    在Bash中,`&`、`nohup`和`disown`各有用途:`&`用于后臺(tái)運(yùn)行命令,選擇合適的工具可以實(shí)現(xiàn)后臺(tái)任務(wù)的穩(wěn)定運(yùn)行,本文介紹Bash?中?nohup?與?&?的區(qū)別及用法,感興趣的朋友一起看看吧
    2025-01-01
  • Linux查看端口占用lsof -i:port的方法

    Linux查看端口占用lsof -i:port的方法

    下面小編就為大家?guī)?lái)一篇Linux查看端口占用lsof -i:port的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

    linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)和加載示例方法

    這篇文章主要介紹了linux生成(加載)動(dòng)態(tài)庫(kù)靜態(tài)庫(kù)示例方法,大家參考使用
    2013-11-11
  • linux sed命令詳解(推薦)

    linux sed命令詳解(推薦)

    sed命令是一個(gè)面向字符流的非交互式編輯器,也就是說(shuō)sed不允許用戶與它進(jìn)行交互操作。接下來(lái)通過(guò)本文給大家詳細(xì)介紹linux sed命令相關(guān)知識(shí),感興趣的朋友一起學(xué)習(xí)吧
    2017-04-04
  • Shell腳本for循環(huán)語(yǔ)句簡(jiǎn)明教程

    Shell腳本for循環(huán)語(yǔ)句簡(jiǎn)明教程

    這篇文章主要介紹了Shell腳本for循環(huán)語(yǔ)句簡(jiǎn)明教程,簡(jiǎn)潔易懂,非常適合剛?cè)腴T的shell新手,需要的朋友可以參考下
    2014-07-07
  • Shell正則表達(dá)式驗(yàn)證IP地址

    Shell正則表達(dá)式驗(yàn)證IP地址

    這篇文章主要介紹了Shell正則表達(dá)式驗(yàn)證IP地址,本文給出了多個(gè)方法,并分別給出實(shí)現(xiàn)代碼,需要的朋友可以參考下
    2015-05-05

最新評(píng)論

嘉荫县| 布拖县| 荆门市| 深水埗区| 防城港市| 黄龙县| 淮安市| 濉溪县| 成武县| 宜都市| 金湖县| 太白县| 桃源县| 扎兰屯市| 类乌齐县| 新兴县| 松阳县| 深泽县| 沙洋县| 镇宁| 治县。| 浦江县| 新和县| 南川市| 大港区| 洛宁县| 开阳县| 东乌珠穆沁旗| 开江县| 南宫市| 广德县| 兴宁市| 巩留县| 庆云县| 梧州市| 永登县| 泉州市| 万盛区| 乌拉特中旗| 汽车| 孟连|