Ops/Docker
docker - install on rhel 7 (script)
mkdir.chandler
2023. 9. 28. 00:00
반응형
docker - install on rhel 7 (script)
바로 이전에 포스팅 했던 rhel 7 환경에서 docker를 설치하는 과정을 script로 만들었습니다. 실제 환경에서 돌려보기 전에 가볍게 테스트 환경에서 돌려보고 필요한 경우 수정/보완해서 사용하시기 바랍니다. (만든지 오래되서 최신 버전에서는 정상적으로 수행될지 확실하지 않습니다.)
# ------------------------------------------------------------------
# Title : Docker Engine Install on Red Hat Linux 7
# Data : 2020-01-22
# Author : Chandler. j. Kim
# Using : excution bash file
# Copyright 2020. All rights reserved
# ------------------------------------------------------------------
#!/bin/bash
##### URL Variable #####
DOCKER_REPO_URL=https://download.docker.com/linux/centos/docker-ce.repo
CONTAINER_SELINUX_URL=http://mirror.kakao.com/centos/7.7.1908/extras/x86_64/Packages/container-selinux-2.107-3.el7.noarch.rpm
INTERNET_CHECK_URL=https://github.com
DOCKER_COMPOSE_LATEST=`curl -s -L https://github.com/docker/compose/releases/latest | grep curl`
DOCKER_COMPOSE_LATEST_URL=`echo $DOCKER_COMPOSE_LATEST | awk '{print $3}'`
DOCKER_COMPOSE_DOWNLOAD=`echo $DOCKER_COMPOSE_LATEST_URL | awk -F - '{print $1}'`
DOCKER_COMPOSE_DOWNLOAD_URL=$DOCKER_COMPOSE_DOWNLOAD-compose-Linux-x86_64
##### Check yum repository #####
yum -q clean all
CHECK_YUM=`yum repolist | grep repolist | awk '{print $2}'`
if [ $CHECK_YUM = 0 ];then
echo ""
echo ""
echo " ------------------------------------------------"
echo " This script requires a yum repository to work. "
echo " Please check the yum repository first. "
echo " ------------------------------------------------"
echo ""
exit
fi
##### Check internet connect #####
CHECK_INTERNET_CONNECT=`curl -L -k -s -o /dev/null -w "%{http_code}\n" $INTERNET_CHECK_URL`
if [ $CHECK_INTERNET_CONNECT = 200 ];then
yum -q clean all
else
echo ""
echo ""
echo " ------------------------------------------"
echo " Internet access is not clear. "
echo " Please check the Internet connect first. "
echo " ------------------------------------------"
echo ""
exit
fi
##### Check docker repo exist #####
CHECK_DOCKER_REPO_URL_EXIST=`curl -L -k -s -o /dev/null -w "%{http_code}\n" $DOCKER_REPO_URL`
if [ $CHECK_DOCKER_REPO_URL_EXIST = 200 ];then
yum -q clean all
else
echo ""
echo ""
echo " -----------------------------------------------"
echo " Docker repository URL is not clear. "
echo " Please check the docker repository URL first. "
echo " -----------------------------------------------"
echo ""
exit
fi
##### Check Container-selinux package exist #####
CHECK_CONTAINER_SELINUX_URL_EXIST=`curl -L -k -s -o /dev/null -w "%{http_code}\n" $CONTAINER_SELINUX_URL`
if [ $CHECK_CONTAINER_SELINUX_URL_EXIST = 200 ];then
yum -q clean all
else
echo ""
echo ""
echo " -------------------------------------------------------"
echo " Container SELinux Package URL is not clear. "
echo " Please check the Container SELinux Package URL first. "
echo " -------------------------------------------------------"
echo ""
exit
fi
##### Linux type check #####
OS_VER=`cat /etc/os-release | grep PRETTY_NAME | awk -F \" '{print $2}'`
##### Decide whether to run the script #####
echo ""
echo ""
echo " ------------------------------------------------------------------"
echo " This script has been verified to work with Red Hat Linux 7 only. "
echo " This OS is $OS_VER."
echo " ------------------------------------------------------------------"
echo ""
echo -ne " Do you want to run the script? (y/n) : "
read WORD
# Select Y or y
if [ $WORD = Y ] || [ $WORD = y ]; then
echo ""
echo ""
echo " Let's start installing Docker Engine"
echo " ------------------------------------"
# Select N or n or Null
else
echo ""
echo ""
echo " Quit the script."
echo ""
echo ""
exit
fi
##### docker install #####
yum install -y -q yum-utils net-tools > /dev/null 2>&1 &
echo -ne ' Install Progress [ ] (0%)\r'
sleep 2
echo -ne ' Install Progress [# ] (4%)\r'
sleep 2
echo -ne ' Install Progress [## ] (8%)\r'
sleep 2
echo -ne ' Install Progress [### ] (12%)\r'
sleep 2
echo -ne ' Install Progress [#### ] (16%)\r'
sleep 2
echo -ne ' Install Progress [##### ] (20%)\r'
sleep 2
yum-config-manager -q --add-repo $DOCKER_REPO_URL > /dev/null 2>&1 &
echo -ne ' Install Progress [###### ] (24%)\r'
sleep 2
echo -ne ' Install Progress [####### ] (28%)\r'
sleep 2
echo -ne ' Install Progress [######## ] (32%)\r'
sleep 2
echo -ne ' Install Progress [######### ] (36%)\r'
sleep 2
echo -ne ' Install Progress [########## ] (40%)\r'
sleep 2
# dependency package from epel
yum install -y -q $CONTAINER_SELINUX_URL > /dev/null 2>&1 &
echo -ne ' Install Progress [########### ] (44%)\r'
sleep 2
echo -ne ' Install Progress [############ ] (48%)\r'
sleep 2
echo -ne ' Install Progress [############# ] (52%)\r'
sleep 2
echo -ne ' Install Progress [############## ] (56%)\r'
sleep 2
echo -ne ' Install Progress [############### ] (60%)\r'
sleep 2
yum install -y -q docker-ce > /dev/null 2>&1 &
echo -ne ' Install Progress [################ ] (64%)\r'
sleep 2
echo -ne ' Install Progress [################# ] (68%)\r'
sleep 2
echo -ne ' Install Progress [################## ] (72%)\r'
sleep 2
echo -ne ' Install Progress [################### ] (76%)\r'
sleep 2
echo -ne ' Install Progress [#################### ] (80%)\r'
sleep 2
##### docker compose install #####
curl -s -L $DOCKER_COMPOSE_DOWNLOAD_URL -o /usr/local/bin/docker-compose > /dev/null 2>&1 &
echo -ne ' Install Progress [##################### ] (84%)\r'
sleep 2
echo -ne ' Install Progress [###################### ] (88%)\r'
sleep 2
echo -ne ' Install Progress [####################### ] (92%)\r'
sleep 2
echo -ne ' Install Progress [######################## ] (96%)\r'
sleep 2
echo -ne ' Install Progress [#########################] (100%)\r'
echo -ne '\n'
sleep 2
echo -ne " Post-processing operation is in progress. Please wait.\r"
sleep 5
##### post-processing #####
systemctl enable --now docker > /dev/null 2>&1
chmod +x /usr/local/bin/docker-compose > /dev/null 2>&1
sed -i 's/^enabled=1/enabled=0/g' /etc/yum.repos.d/docker-ce.repo
DOCKER_VERSION=`docker --version | awk -F , '{print $1}' | awk '{print $3}'`
COMPOSE_VERSION=`docker-compose --version | awk -F , '{print $1}' | awk '{print $3}'`
echo -ne " Finished "
echo -ne '\n'
echo ""
echo " Installed version information"
echo " -----------------------------"
echo " Docker Version : $DOCKER_VERSION"
echo " Docker-Compose Version : $COMPOSE_VERSION"
echo ""
echo ""
# End Line
by mkdir-chandler
728x90
반응형