作業中のメモ

よく「計算機」を使って作業をする.知らなかったことを中心にまとめるつもり.

Raspberry Pi 3 Model BにDocker導入

どうも,筆者です.

久しぶりの更新となる.

目的

Raspberry Pi 3 Model B に Docker を導入し,Nginx,MySQLdjango を用いて,名簿作成システムを構築する.

実施内容

今回は,Raspberry Pi 3 Model B で下記の設定を行う.

  1. Docker のインストール
  2. Docker-Compose のインストール

Dockerのインストール

Raspberry Pi 3 Model B の環境を以下に示す.

cat /etc/os-release
#PRETTY_NAME="Raspbian GNU/Linux 8 (jessie)"
#NAME="Raspbian GNU/Linux"
#VERSION_ID="8"
#VERSION="8 (jessie)"
#ID=raspbian
#ID_LIKE=debian
#HOME_URL="http://www.raspbian.org/"
#SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
#BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

下記のコマンドで Docker をインストールする. 参考サイト

# Docker のインストール
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
sudo apt-key fingerprint 0EBFCD88
echo "deb [arch=armhf] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list
sudo apt-get update
sudo apt-get install -y docker-ce

# バージョンチェック(実行にはroot権限が必要)
sudo docker version
# 出力例
#Client:
# Version:           18.06.3-ce
# API version:       1.38
# Go version:        go1.10.3
# Git commit:        d7080c1
# Built:             Wed Feb 20 02:48:01 2019
# OS/Arch:           linux/arm
# Experimental:      false
#
#Server:
# Engine:
#  Version:          18.06.3-ce
#  API version:      1.38 (minimum version 1.12)
#  Go version:       go1.10.3
#  Git commit:       d7080c1
#  Built:            Wed Feb 20 02:43:39 2019
#  OS/Arch:          linux/arm
#  Experimental:     false

# ユーザを docker グループに追加(root権限が不要になる)
sudo usermod -aG docker ${USER}

# 一度ログアウトし,再度ログイン
exit
### ログイン処理 ###

# 再度,バージョンを確認
docker version

Docker-Compose のインストール

下記のコマンドで,Docker-Compose のインストールを実施する. 参考サイト

# git のインストール
sudo apt-get install -y git

# compose を clone
git clone https://github.com/docker/compose.git

# compose のインストール
cd compose
git checkout bump-1.23.2 # ブランチの変更
sed -i -e 's:^VENV=/code/.tox/py36:VENV=/code/.venv; python3 -m venv $VENV:' script/build/linux-entrypoint
sed -i -e '/requirements-build.txt/ i $VENV/bin/pip install -q -r requirements.txt' script/build/linux-entrypoint
docker build -t docker-compose:armhf -f Dockerfile.armhf .
# しばらく待つ
docker run --rm --entrypoint="script/build/linux-entrypoint" -v $(pwd)/dist:/code/dist -v $(pwd)/.git:/code/.git "docker-compose:armhf"
sudo cp dist/docker-compose-Linux-armv7l /usr/local/bin/docker-compose
sudo chown root:root /usr/local/bin/docker-compose
sudo chmod 0755 /usr/local/bin/docker-compose
docker-compose version
#docker-compose version 1.23.2, build 1110ad01
#docker-py version: 3.6.0
#CPython version: 3.6.8
#OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

# イメージの削除
docker rmi $(docker images | grep docker-compose | awk '{print $3;}')

これで,Docker と Docker-Compose が導入できた.次は,Nginx,PostgreSQLdjango のイメージの構築を行う.

次回

workspacememory.hatenablog.com