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
該腳本實現(xiàn)了 離線安裝docker ,自動化導(dǎo)入image包, 自動運行容器等操作
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)的機器,開啟 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)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Docker安全開放遠(yuǎn)程訪問連接權(quán)限方式
文章介紹了如何配置Docker以實現(xiàn)遠(yuǎn)程訪問、開啟認(rèn)證和通信加密,包括生成證書和私鑰、配置Docker守護(hù)進(jìn)程以及在IDEA和Maven中連接Docker服務(wù)的方法2024-11-11詳解用Docker構(gòu)建MySQL主從環(huán)境
這篇文章主要介紹了詳解用Docker構(gòu)建MySQL主從環(huán)境,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解
這篇文章主要介紹了Deepin使用docker安裝mysql數(shù)據(jù)庫過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06解決docker安裝完成報:bridge-nf-call-iptables is disabled問題
這篇文章主要介紹了解決docker安裝完成報:bridge-nf-call-iptables is disabled問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11