docker離線部署docker,部署業(yè)務(wù)方式
背景
有時候我們的軟件部署環(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ǎo)入image包, 自動運(yùn)行容器等操作
docker 是通過rpm 包進(jìn)行安裝
安裝包獲?。?a rel="external nofollow" target="_blank">https://download.docker.com/linux/centos/7/x86_64/stable/Packages/
其中包括 一些以來rpm 需要我么自己獲取

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

打包文件為一個tar的壓縮文件,文件目錄層級結(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é)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker安裝Minio+SpringBoot上傳下載文件方式
本文主要介紹了如何通過Docker安裝Minio并進(jìn)行訪問測試,同時也講解了如何在SpringBoot中上傳文件到Minio,內(nèi)容包含了pom文件引入依賴,application.properties配置,Minio配置,MinioClinet,FileService,FileServiceImpl的配置2024-10-10
docker容器運(yùn)行成功但無法訪問的原因分析及解決方案(以Tomcat為例親測有效)
這篇文章主要介紹了docker容器運(yùn)行成功但無法訪問的原因分析及對應(yīng)解決方案(以Tomcat為例親測有效),文中通過圖文結(jié)合的方式介紹的非常詳細(xì),具有一定的參考價值,需要的朋友可以參考下2024-03-03
淺析Docker如何創(chuàng)建自定義容器(附通用Python 3.12模板)
這篇文章主要為大家詳細(xì)介紹了Docker如何創(chuàng)建自定義容器,并附上通用Python 3.12模板,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2025-11-11
Docker復(fù)制現(xiàn)有容器的實(shí)現(xiàn)方法
在使用Docker進(jìn)行應(yīng)用開發(fā)和部署時,我們經(jīng)常需要基于現(xiàn)有的容器創(chuàng)建相似的環(huán)境,本文主要介紹了Docker復(fù)制現(xiàn)有容器的實(shí)現(xiàn)方法,具有一定的參考價值,感興趣的可以了解一下2024-03-03

