docker離線部署docker,部署業(yè)務(wù)方式
背景
有時(shí)候我們的軟件部署環(huán)境是完全離線的,需要離線部署docker ,部署業(yè)務(wù)相關(guān)的軟件,為了方便操作,提供一下腳本
腳本文件
#!/bin/bash
# auto deploy icity system
# offline install docker use rpm
set -ex
install_dir='/software_install'
docker_rpm='/software/docker_rpm'
images='/software/images'
echo -e "auto deploy software"
# the tar file is uploaded at "/"
function untar(){
tar -xvf cfss_install.tar
};
function remove_old_version() {
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
};
function install_docker(){
rpm -ivh ${docker_rpm}/*.rpm --nodeps --force
systemctl enable docker
systemctl start docker
};
function load_image(){
docker load -i ${images}/redis.tar
docker load -i ${images}/mysql.tar
docker load -i ${images}/forntend.tar
docker load -i ${images}/backend.tar
};
function run_redis(){
tag=`docker images | grep redis | awk '{ print $2 }'`
docker run -itd --name redis -p 6379:6379 redis:${tag}
};
function run_mysql(){
tag=`docker images | grep mysql | awk '{ print $2 }'`
docker run -itd --name mysql -e MYSQL_ROOT_PASSWORD=123456 \
-p 3306:3306 mysql:${tag}
};
function run_forntend(){
tag=`docker images | grep cfss-vue-icity | awk '{ print $2 }'`
docker run -itd -p 8700:80 --name forntend \
forntend:${tag}
};
function run_backend(){
tag=`docker images | grep cfss-icity | awk '{ print $2 }'`
mkdir -p /mnt/disk1/uploadfiles/
docker run -itd -p 8701:19001 --name backend \
backend:${tag}
};
untar
remove_old_version
install_docker
load_image
run_redis
run_mysql
run_forntend
run_backend
if [ $? -eq 0 ] ;
then
echo -e "auto deploy is done !" ;
fi
該腳本實(shí)現(xiàn)了 離線安裝docker ,自動(dòng)化導(dǎo)入image包, 自動(dòng)運(yùn)行容器等操作
docker 是通過(guò)rpm 包進(jìn)行安裝
安裝包獲?。?a rel="external nofollow" target="_blank">https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
其中包括 一些以來(lái)rpm 需要我么自己獲取

獲取方法:
1.找一臺(tái)能聯(lián)網(wǎng)的機(jī)器,開(kāi)啟 yum緩存 ,(如何開(kāi)啟,看下圖 keepcache=1即可)
2. yum install docker-ce-18.06.1.* -y (視具體版本修改)
3. 去 yum的緩存路徑下去找 ,看下圖 cachedir路徑就是 如我當(dāng)前環(huán)境存儲(chǔ)路徑 為:/var/cache/yum/x86_64/7/base/packages

打包文件為一個(gè)tar的壓縮文件,文件目錄層級(jí)結(jié)構(gòu)可以參考
software.tar -docker_rpm XXX.rpm XXX.rpm … -images nginx.tar redis.tar 業(yè)務(wù).tar
docker的tar包 使用 docker save <image_name> -o XXX.tar 獲取
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker安全開(kāi)放遠(yuǎn)程訪問(wèn)連接權(quán)限方式
文章介紹了如何配置Docker以實(shí)現(xiàn)遠(yuǎn)程訪問(wèn)、開(kāi)啟認(rèn)證和通信加密,包括生成證書(shū)和私鑰、配置Docker守護(hù)進(jìn)程以及在IDEA和Maven中連接Docker服務(wù)的方法2024-11-11
docker中配置hosts的方法實(shí)現(xiàn)
本文主要介紹了docker中配置hosts的方法實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Docker端口映射后,外機(jī)訪問(wèn)不了的問(wèn)題及解決
Docker端口映射后外機(jī)訪問(wèn)不了的問(wèn)題可能包括:網(wǎng)絡(luò)配置錯(cuò)誤(需與宿主機(jī)在同一網(wǎng)段)、容器未啟動(dòng)、防火墻設(shè)置問(wèn)題(需關(guān)閉或開(kāi)放映射端口)、未開(kāi)啟IP轉(zhuǎn)發(fā)2025-02-02
詳解用Docker構(gòu)建MySQL主從環(huán)境
這篇文章主要介紹了詳解用Docker構(gòu)建MySQL主從環(huán)境,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07
Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
關(guān)于docker的15個(gè)小tip(技巧)
本篇文章主要介紹了docker的15個(gè)小tip(技巧),具有一定的參考價(jià)值,有需要的可以了解一下。2016-12-12
解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問(wèn)題
這篇文章主要介紹了解決docker安裝完成報(bào):bridge-nf-call-iptables is disabled問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11

