LightsailのCentOSにDockerをインストールする

5月 10, 2020

Dockerをインストールする

LightsailのCentoOSにMacのターミナルからsshで接続して、以下の操作を行って下さい。

// 確認
$ docker version
-bash: docker: コマンドが見つかりません

// Dockerのインストール
$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

// レポジトリのインストールと有効化
$ sudo yum-config-manager –add-repo https://download.docker.com/linux/centos/docker-ce.repo

// yum パッケージ・インデックスを更新
$ sudo yum makecache fast

// インストール可能なバージョンのリストを取得
$ yum list docker-ce –showduplicates | sort -r
利用可能なパッケージ
読み込んだプラグイン:fastestmirror, langpacks
docker-ce.x86_64 3:18.09.2-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.1-3.el7 docker-ce-stable
docker-ce.x86_64 3:18.09.0-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.3.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.2.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.1.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.06.0.ce-3.el7 docker-ce-stable
docker-ce.x86_64 18.03.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 18.03.0.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.1.ce-1.el7.centos docker-ce-stable
docker-ce.x86_64 17.12.0.ce-1.el7.centos docker-ce-stable
〜省略〜
Loading mirror speeds from cached hostfile
updates: ftp.iij.ad.jp
extras: ftp.iij.ad.jp
epel: ftp.jaist.ac.jp
epel-source: ftp.jaist.ac.jp
epel-debuginfo: ftp.jaist.ac.jp
base: ftp.iij.ad.jp

docker-ceは、無償版を意味します。有償版の場合は、docker-eeです。ここでは、インストール可能なバージョンのリストのうち、centosと書かれていてバージョンの高いものを使った方がいいでしょう。

// Dockerのバージョンを指定してインストール
$ sudo yum install docker-ce-18.03.1.ce-1.el7.centos

// dockerのバージョンを確認
$ docker version

// Dockerを起動
$ sudo systemctl start docker

// サービスが起動しているか確認
$ systemctl status docker

// コマンドが配置されている場所
$ which docker
/usr/bin/docker

// 稼働中のプロセスからdockerの稼働を確認する
$ ps -aux | grep dockerd

// OS起動時にDockerを自動起動にする
$ sudo systemctl enable docker

// 自動起動が設定されたことを確認
$ systemctl is-enabled docker

// Group一覧にdockerがあることを確認する(通常インストール時に作成されている)
$ cut -d: -f1 /etc/group

// もしdockerグループがなかったら、以下のコマンドで作れる
$ sudo groupadd docker

// USERがdockerグループに入っているかどうか確認
// USERがdockerグループに入っていなければ、dockerコマンドが実行できない
$ groups $USER

// $USERがdockerグループに入っていなかったら追加する
$ usermod -aG docker $USER

// $USERユーザで、dockerコマンドが実行できるか確認してみる
$ docker ps -a
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.37/containers/json?all=1: dial unix /var/run/docker.sock: connect: permission denied
// ↑まだできない。どうすればよいか?

// 一度、一般ユーザをログアウトして、再度ログインすると実行できるようになります。
$ exit

// 再度、ssh接続でログインする
$ ssh lightsail

// もう一度、dockerコマンドが実行できるか確認する(成功)
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

こんな感じにやれば、DockerをLightsailのCentoOSサーバにインストールすることが出来ます。dockerコマンドで一番実行するコマンドは、docker ps -aだと思います。なにか実行したら、その都度docker ps -aを実行してコンテナの状態を確認すると良いと思います。

docker-composeのインストール

docker-composeとは

docker-composeとは、dockerの設計書です。dockerの構築を手作業でやらなくて済むようになります。

docker-composeのインストール手順

まずは、ここでdocker-composeの最新版を確認して下さい。以下のオレンジ色の部分を変更した上で以下のコマンドをターミナルから実行して下さい。

// docker-composeのインストール
$ sudo curl -L https://github.com/docker/compose/releases/download/1.25.5/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose

// 変更前のdocker-composeのパーミッションを確認する
$ ls -l /usr/local/bin/docker-compose
-rw-r–r– 1 root root 16168192 7月 27 07:21 /usr/local/bin/docker-compose

// バイナリの実行権限を適用する
$ sudo chmod +x /usr/local/bin/docker-compose

// 変更後のdocker-composeのパーミッションを確認する
$ ls -l /usr/local/bin/docker-compose
-rwxr-xr-x 1 root root 16168192 7月 27 07:21 /usr/local/bin/docker-compose

// docker-composeのバージョン確認
$ docker-compose –version
docker-compose version 1.25.5, build 8a1c60f6

バージョンが表示されていない場合は、インストールに失敗しています。ここまで出来たらdocker-composeのインストールは完了です。

「LightsailとDjangoでサイト構築」の全体の流れ

・AWSに登録する(省略)
・LightsailでCentOSのインスタンスを作成する & ssh接続をする
Lightsailに固定IP & 独自ドメインを設定する
Lightsailインスタンスの初期ログインのパスワードの取得
・(ロードバランサの作成 & SSL/TLS証明書の設定)
Let’s EncryptによるSSL/TLS証明書の設定
LightsailのCentOSにDockerをインストールする(このページ)
・DockerでDjangoのサイトをブラウザで表示する