1. 程式人生 > 其它 >部署docker和docker-compose

部署docker和docker-compose

docker 安裝

1 線上安裝,則執行指令碼後,根據提示選擇線上安裝的方式即可

https://blog.csdn.net/qq_44246980/article/details/124531349

#!/bin/bash
#該指令碼用於測試環境部署docker
#所有者:北城半夏
#
#當前版本
#v1.0.1
#################################################################################
#離線安裝docker#
###############
docker_tar_dir="/opt/docker"
docker_tar_name="docker-19.03.tar.gz"
docker_tar_name1="docker"
#安裝完成後是否清理解壓後的檔案、目錄
docker_pd="no"
#################################################################################
# docker基礎環境部署 #
#################################################################################
info(){
echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[36m$1\033[0m "
}
info1(){
echo -e "\033[36m $1 \033[0m "
}
info2(){
echo -e "\033[34m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "
}

info6(){
echo -e "\033[33m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[91m$1\033[0m "
}
info7(){
echo -e "\033[35m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[32m$1\033[0m "
}

info8(){
echo -e "\033[31m 【`hostname` `date '+%Y-%m-%d %H:%M:%S'`】\033[0m" "\033[35m$1\033[0m "
}

#線上安裝docker
install_docker(){
#官方網站下載最新版docker
info "官方網站下載最新版docker"
yum install -y vim yum-utils bash-completion net-tools gcc ipvsadm wget ipset bc &>/dev/null
if [ $? -eq 0 ];then
info "安裝docker的相關依賴包"
else
info8 "install docker CE fail"
fi
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo &>/dev/null
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo &>/dev/null
if [ $? -eq 0 ];then
info "新增docker的線上yum倉庫"
else
info8 "install docker CE fail"
fi
info6 "重新載入yum倉庫,根據網速決定等待的時間,請耐心等待!!!"
yum makecache &>/dev/null
info "yum倉庫載入成功"
info3
info4 "開始安裝docker基礎環境,親耐心等待"
yum -y install docker-ce >/dev/null
[ $? -eq 0 ] && info2 "docker 環境安裝成功"
#開啟路由轉發
cat >>/etc/sysctl.conf<<EOF
net.ipv4.ip_forward = 1
EOF
sysctl -p &>/dev/null

#新增阿里雲映象加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://geuj9lut.mirror.aliyuncs.com"]
}
EOF

}
off_line_install_docker(){
info6 "離線安裝包的名稱(${docker_tar_name}):"
info6 "離線安裝包解壓後目錄(${docker_tar_name1}):"
info6 "離線安裝包的位置(${docker_tar_dir}):"
read -p "安裝完成後是否清理解壓後的檔案、目錄(${docker_pd}):" docker_pd

local path_dir_tar="$docker_tar_dir"
local docker_tar_name1=${docker_tar_name1}
local docker_tar_name=${docker_tar_name}
local docker_pd=${docker_pd}
info "離線安裝docke,版本基於使用者提供的離線安裝包${path_dir_tar}/${docker_tar_name}"
if [ -f ${path_dir_tar}/${docker_tar_name} ];then
cd ${path_dir_tar}
info "解壓${docker_tar_name}到${path_dir_tar}"
tar -xf ${docker_tar_name} -C ${path_dir_tar}
[ $? -eq 0 ] && info7 "${docker_tar_name}解壓成功,開始準備安裝,請等待!!!"
cd ${path_dir_tar}/${docker_tar_name1}
yum -y install ./*.rpm >/dev/null
[ $? -eq 0 ] && info7 "docker安裝成功"
else
info8 "${path_dir_tar}/${docker_tar_name} 不存在,請檢查後重試!!!"
mkdir -p ${path_dir_tar}
exit 0
fi
if [ ${docker_pd} == yes ];then
rm -rf ${path_dir_tar}
[ $? -eq 0 ] && info "清理已安裝的安裝包及相應的壓縮包"
fi

#開啟路由轉發
cat >>/etc/sysctl.conf<<EOF
net.ipv4.ip_forward = 1
EOF
sysctl -p &>/dev/null

#新增阿里雲映象加速器
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://geuj9lut.mirror.aliyuncs.com"]
}
EOF

}


#安裝docker是的幫助資訊
install_docker_help(){
info8 "離線安裝docker時,需要提前準備好對應的RPM的安裝包,且需要存放在$docker_tar_dir"
info8 "相應的配置可根據螢幕列印的提示繼續即可"
}

#啟動docker
start_docker(){
if [ `rpm -qa|grep docker |wc -l` -eq 0 ];then
install_docker_help
read -p "選擇docker的安裝方式:(線上=0,離線=1):" start_install_docerk
start_install_docerk=${start_install_docerk:-0}
if [ ${start_install_docerk} -eq 0 ];then
install_docker
systemctl daemon-reload
systemctl restart docker
systemctl enable docker >/dev/null
else
off_line_install_docker
systemctl restart docker
systemctl enable docker >/dev/null
fi
else
a=`rpm -qa|grep docker-ce|tail -1`
info8 "\033[32m ${a}已安裝,不需要重新部署\033[0m"
local docker_status=`systemctl status docker |grep Active|awk '{print $2}'`
if [ ! ${docker_status} == "active" ];then
systemctl start docker
info8 "\033[32m docker服務已重新正常啟動\033[0m"
else
info8 "\033[32m docker服務已正常啟動!!!\033[0m"
fi
fi
}
start_docker

Docker Compose 安裝
安裝 Docker Compose 可以通過下面命令自動下載適應版本的 Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

為安裝指令碼新增執行許可權
sudo chmod +x /usr/local/bin/docker-compose

檢視安裝是否成功
docker-compose -v

原文連結:https://blog.csdn.net/Black794/article/details/124046911