본문 바로가기

Ops/Docker

docker - install on rhel 7 (script)

반응형

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
반응형