はじめに
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のドキュメントを参考にしています。

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のドキュメントを参考にしています。

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