Ubuntu 20.04へDockerをインストールするスクリプト

スポンサーリンク
スポンサーリンク

はじめに

Ubuntu20.04にDocker環境を構築するためのスクリプトについて説明します。

使用しているスクリプトは、githubにvm-configurateとして公開しているのでgithubからダウンロードするかここからダウンロードしてください。

vm-configurateのフォルダ構成については、下のリンクを参照してください。

/guest-share/ubuntu-20.04/os/configure.sh

Ubuntu 20.04上でDockerコンテナを動作させるために必要なOSのアップグレードやDocker・Docker Composeをインストールするためのスクリプトです。

スクリプトファイルの場所をカレントディレクトリにしています。

SCRIPT_DIR=$(dirname "$0")
cd "$SCRIPT_DIR"

/guest-share/ubuntu-20.04/os/env.confファイルに定義されている変数を読み込んでいます。

. "env.conf"

Ubuntuを最新の状態に更新しています。

apt dist-upgrade

インストール済みの古いバージョンのDockerパッケージをアインインストールし、最新安定版のDocker CEをインストールしています。

下のリンクにあるDockerのドキュメントを参考にしています。

Install Docker Engine on Ubuntu
Jumpstartyourclient-sideserverapplicationswithDockerEngineonUbuntu.Thisguidedetailsprerequisitesandmultiplemethodstoinstall.
apt-get remove -y docker docker-engine docker.io containerd runc
apt-get update -y 
apt-get install -y \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
apt-key fingerprint 0EBFCD88
add-apt-repository \
    "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) \
    stable"
apt-get update -y
apt-get install -y docker-ce docker-ce-cli containerd.io

curlコマンドを使ってDocker Composeをダウンロードしてインストールしています。

ダウンロードするDocker Composeのバージョンは、/guest-share/ubuntu-20.04/os/env.confファイルで定義しているDOCKER_COMPOSE_VERSIONで指定しています。

下のリンクにあるDocker Composeのドキュメントを参考にしています。

Overview of installing Docker Compose
LearnhowtoinstallDockerCompose.ComposeisavailablenativelyonDockerDesktop,asaDockerEngineplugin,andasastandalonetool.
curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

/etc/sysctl.confファイルへ/guest-share/ubuntu-20.04/os/sysctl.confファイルに定義されているに定義をマージしています。

LF=$'\n'
sysctl=`cat "/etc/sysctl.conf"`
while read line
do
	sysctl=`echo "${sysctl}" | sed -e "/^${line%%=*}=.*$/d"`
	sysctl+="${LF}${line}"
done < "sysctl.conf"
echo "${sysctl}" > "/etc/sysctl.conf"
sysctl -p

/guest-share/ubuntu-20.04/os/env.confファイルのHOST_NAMEに定義されている値をUbuntuのホスト名として使用するように設定しています。

hostnamectl set-hostname $HOST_NAME

/guest-share/ubuntu-20.04/os/env.conf

configure.shで使用するための設定値を定義しています。

ホスト名を定義しています。

HOST_NAME=collbow.local

インストールするDocker Composeのバージョンを定義しています。

DOCKER_COMPOSE_VERSION=1.26.2

/guest-share/ubuntu-20.04/os/sysctl.conf

configure.shで/etc/sysctl.confへ設定する設定値を定義しています。

仮想メモリーの最大マップカウント数を262144に設定しています。

この設定を行っておかないと、DockerコンテナでElasticsearchを使用した場合にエラーが発生し正常に起動することが出来なくなります。

vm.max_map_count = 262144

Dockerコンテナの構築については、下のリンクを参照してください。

Comment

スポンサーリンク