Skip to content

Instantly share code, notes, and snippets.

@zsiti
Last active January 22, 2022 17:13
Show Gist options
  • Save zsiti/3872c518d894af1c98292472513b1442 to your computer and use it in GitHub Desktop.
Save zsiti/3872c518d894af1c98292472513b1442 to your computer and use it in GitHub Desktop.
docker host genesis script for centos7
#!/bin/bash
# you can run a gist directly by changing a bit on the gist URL:
# original: https://gist.github.com/zsiti/3872c518d894af1c98292472513b1442
# direct: https://gist.githubusercontent.com/zsiti/3872c518d894af1c98292472513b1442/raw
# curl the direct githubusercontent link, and pipe it to bash
# curl -s https://gist.githubusercontent.com/zsiti/3872c518d894af1c98292472513b1442/raw | bash
# This first section will ask for sudo password, to create a NOPASSWD sudoers policy for my user
# All subsequent commands beginning with sudo will be performed without the need for a sudo password
echo $USER 'ALL=(ALL) NOPASSWD:ALL' | sudo tee -a /etc/sudoers.d/$USER
# sudo chmod 0440 /etc/sudoers.d/$USER; actually the default 644 should be fine since the owner is root:root
# allow in my SSH keys
mkdir -p $HOME/.ssh
#touch /$HOME/.ssh/authorized_keys
#chown $USER:$USER /home/$USER/.ssh/authorized_keys
curl -o $HOME/.ssh/authorized_keys https://github.com/zsiti.keys
# set locale
sudo localectl set-locale LANG=en_US.utf8
sudo localectl set-locale LC_CTYPE=en_US.utf8
sudo localectl set-locale LC_NUMERIC=en_US.utf8
sudo localectl set-locale LC_TIME=en_US.utf8
sudo localectl set-locale LC_COLLATE=en_US.utf8
sudo localectl set-locale LC_MONETARY=en_US.utf8
sudo localectl set-locale LC_MESSAGES=en_US.utf8
sudo localectl set-locale LC_PAPER=en_US.utf8
sudo localectl set-locale LC_NAME=en_US.utf8
sudo localectl set-locale LC_ADDRESS=en_US.utf8
sudo localectl set-locale LC_TELEPHONE=en_US.utf8
sudo localectl set-locale LC_MEASUREMENT=en_US.utf8
sudo localectl set-locale LC_IDENTIFICATION=en_US.utf8
sudo localectl set-locale LC_ALL=en_US.utf8
# update/upgrade centos system
sudo yum update -y
sudo yum upgrade -y
# install necessary packages
sudo yum install git vim -y
# Remove any old docker versions
sudo yum remove -y docker docker-common docker-selinux docker-engine
# Remove any old versions
sudo yum remove -y docker docker-common docker-selinux docker-engine
# Install required packages
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# Configure docker repository
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# Install Docker-ce
sudo yum install docker-ce -y
# Start Docker
sudo systemctl start docker
sudo systemctl enable docker
# Post Installation Steps
# Create Docker group
sudo groupadd docker
# Install docker-compose
# latest version: https://github.com/docker/compose/releases
# latest commands: https://docs.docker.com/compose/install/
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
# Permssion +x execute binary
sudo chmod +x /usr/local/bin/docker-compose
# Create symlink for docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
# Check Versions
sudo docker --version
sudo docker-compose --version
# fix ownership of docker socket
# in the next command we make sure $USER is part of docker group for access to docker.sock
sudo chown root:docker /var/run/docker.sock
# Add user to the docker group
sudo usermod -aG docker $USER
# docker ps output config
#echo '{"psFormat": "table {{.ID}}\\t{{.Image}}\\t{{.Status}}\\t{{.Names}}"}' | sudo tee -a /etc/sudoers.d/$USER
mkdir -p $HOME/.docker/
echo '{ "psFormat": "table {{.Names}}\\t{{.Status}}\\t{{.Image}}" }' > $HOME/.docker/config.json
git clone https://zsiti@bitbucket.org/zsiti/docker.git $HOME/docker/
sudo ln -fs $HOME/docker/zsiti-scripts-docker/zsiti-docker-bash-profile.sh /etc/profile.d/zsiti-docker-bash-profile.sh
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment