Docker and Docker-compose one-click installation tutorial (supports online and offline)

Docker and Docker-compose one-click installation tutorial (supports online and offline)

Shell Script

#!/bin/sh
# Current directory CURRENT_DIR=$(
 cd "$(dirname "$0")"
 pwd
)

#Install docker 
if which docker >/dev/null; then
 echo "Docker is already installed, skip the installation step"
 docker -v
 echo "Start Docker"
 service docker start 2>&1 | tee -a ${CURRENT_DIR}/install.log
else
 if [[ -d "$CURRENT_DIR/docker" ]]; then
  echo "... install docker offline"
	 cp $CURRENT_DIR/docker/centos-local.tgz /root/
	 cd /root && tar -xvzf centos-local.tgz 
  cd /root/docker-ce-local &&rpm -ivh createrepo-0.9.9-28.el7.noarch.rpm
  mkdir -p /etc/yum.repos.d/repobak && mv /etc/yum.repos.d/CentOS* /etc/yum.repos.d/repobak
  cp $CURRENT_DIR/docker/docker-ce-local.repo /etc/yum.repos.d/docker-ce-local.repo
  cd /root/docker-ce-local &&createrepo /root/docker-ce-local && yum makecache
	 cd $CURRENT_DIR/docker/ &&yum install -y container-selinux-2.9-4.el7.noarch.rpm &&yum install -y docker-ce
	 echo "... start docker"
	 sudo systemctl start docker 2>&1 | tee -a ${CURRENT_DIR}/install.log
	 echo '{"registry-mirrors":["https://registry.docker-cn.com"]}'>/etc/docker/daemon.json
	 cat /etc/docker/daemon.json
	 service docker restart
 else
  echo "... install docker online"
  curl -fsSL https://get.docker.com -o get-docker.sh 2>&1 | tee -a ${CURRENT_DIR}/install.log
  sudo sh get-docker.sh 2>&1 | tee -a ${CURRENT_DIR}/install.log
  echo "... start docker"
  service docker start 2>&1 | tee -a ${CURRENT_DIR}/install.log
 fi
fi

##Install Latest Stable Docker Compose Release
if which docker-compose >/dev/null; then
 echo "Docker Compose is detected to be installed, skipping the installation step"
 docker-compose -v
else
 if [[ -d "$CURRENT_DIR/docker-compose" ]]; then
  echo "... offline installation of docker-compose"
	 cd $CURRENT_DIR/docker-compose/ && cp docker-compose /usr/local/bin/
	 chmod +x /usr/local/bin/docker-compose
	 docker-compose -version
	 echo "... Offline installation of docker-compose successful"
 else
  echo "... install docker-compose online"
  curl -L "https://github.com/docker/compose/releases/download/1.14.0-rc2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose 2>&1 | tee -a ${CURRENT_DIR}/install.log
  chmod +x /usr/local/bin/docker-compose
  ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
	 docker-compose -version
	 echo "... Successfully installed docker-compose online"
 fi
fi

If the script is copied and used, the following error is reported

insert image description here

Please execute

sed -i 's/\r$//' installDocker.sh
chmod +x installDocker.sh

In case of poor network conditions, offline installation is recommended. Please download the following package first.

Offline installation package link: https://pan.baidu.com/s/1ANDM5v-Z1zmljekc4djAdQ

Extraction code: 39dm

This is the end of this article about one-click installation of docker and docker-compose (supports online and offline). For more relevant docker and docker-compose installation content, please search for previous articles on 123WORDPRESS.COM or continue to browse the following related articles. I hope everyone will support 123WORDPRESS.COM in the future!

You may also be interested in:
  • Docker-compose tutorial installation and quick start
  • Docker Compose installation methods in different environments
  • Two simplest ways to install docker-compose
  • Detailed example of installing docker and docker-compose
  • Detailed steps for installing and setting up Docker-compose
  • Practical notes on installing Jenkins with docker-compose

<<:  Why is UTF-8 not recommended in MySQL?

>>:  Style trigger effect of web page input box

Recommend

Example of how to enable Slow query in MySQL

Preface Slow query log is a very important functi...

MySQL encoding utf8 and utf8mb4 utf8mb4_unicode_ci and utf8mb4_general_ci

Reference: MySQL character set summary utf8mb4 ha...

Vue implements page caching function

This article example shares the specific code of ...

A brief analysis of React's understanding of state

How to define complex components (class component...

Simple steps to implement H5 WeChat public account authorization

Preface Yesterday, there was a project that requi...

mysql add, delete, modify and query basic statements

grammar Here is the generic SQL syntax for INSERT...

JavaScript to achieve floor effect

This article shares the specific code of JavaScri...

The difference between div and table in speed, loading, web application, etc.

1: Differences in speed and loading methods The di...

Tutorial on how to install htop on CentOS 8

If you are looking to monitor your system interac...

Solution to MySQL remote connection failure

I have encountered the problem that MySQL can con...

Tutorial on how to remotely connect to MySQL database under Linux system

Preface I recently encountered this requirement a...

Detailed explanation of custom configuration of docker official mysql image

In order to save installation time, I used the of...