WordPress
のテーマを1から自作することになりました。
サーバに開発用のWordPress
を設置して作っていてもいいですが、やはりローカル環境で作成するのが望ましいと考えました。
Debian stretch
ですので、LAMP
環境をすぐに作成することも可能です。
しかし、最近は動作の軽いDocker
が気になっていました。
せっかくですので、Docker
でLAMP
環境を構築しようと思います。
今回は、Docker
のインストール編です。
公式インストールドキュメント
Debian stretch
はこちらの公式インストールドキュメントを参照しています。
Dockerリポジトリの追加
Debian stretch
の標準のリポジトリはDocker
が入っていません。
ここでは、Docker
公式リポジトリを追加します。
必要なパッケージのインストール
まずは必要なパッケージをインストールしていきます。
~$ sudo apt-get update
~$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
ca-certificates はすでに最新バージョン (20161130+nmu1) です。
ca-certificates は手動でインストールしたと設定されました。
gnupg2 はすでに最新バージョン (2.1.18-8~deb9u1) です。
gnupg2 は手動でインストールしたと設定されました。
software-properties-common はすでに最新バージョン (0.96.20.2-1) です。
software-properties-common は手動でインストールしたと設定されました。
以下のパッケージが新たにインストールされます:
apt-transport-https curl
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 2 個。
398 kB のアーカイブを取得する必要があります。
この操作後に追加で 597 kB のディスク容量が消費されます。
続行しますか? [Y/n]
僕の環境では、「apt-transport-https
」「curl
」以外はすでに入っていました。
Dockerの公式GPG鍵の追加
リポジトリを追加するために必要なGPG
鍵を追加します。
~$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
OK
~$
リポジトリの追加
stretch
の stable
として登録します。
amd64
のアーキテクチャだけを取得するため、「[arch=amd64]
」を入れておきます。
~$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian stretch stable"
~$
Docker CEのインストール
無償版のDocker CE
をインストールします。
~$ sudo apt-get update
~$ sudo apt-get install docker-ce
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
aufs-dkms aufs-tools cgroupfs-mount dkms pigz
提案パッケージ:
aufs-dev python3-apport
以下のパッケージが新たにインストールされます:
aufs-dkms aufs-tools cgroupfs-mount dkms docker-ce pigz
アップグレード: 0 個、新規インストール: 6 個、削除: 0 個、保留: 2 個。
34.2 MB のアーカイブを取得する必要があります。
この操作後に追加で 183 MB のディスク容量が消費されます。
続行しますか? [Y/n]
これでDocker
のインストールは完了です。
Dockerの起動
テスト用にhello-world
イメージがありますので、起動してみます。
~$ sudo docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
9bb5a5d4561a: Pull complete
Digest: sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/engine/userguide/
~$
うまくいっているようです。
イメージの削除
テストしたhello-world
イメージがダウンロードされています。
~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
~$
このイメージが必要なければ削除しておきましょう。
コンテナの確認と削除
イメージの削除の前に紐付いているコンテナが削除されている必要があります。
まずはコンテナの状態を確認してみます。
稼働中のコンテナ一覧
~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
停止中のコンテナ一覧
~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c274e105967e hello-world "/hello" 10 minutes ago Exited (0) 10 minutes ago hungry_mendeleev
今は停止中になっています。
コンテナの削除
削除するには、コンテナID(CONTAINER ID
)を使います。
~$ sudo docker rm c274e105967e
c274e105967e
~$
消えているか確認してみます。
~$ sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
コンテナの削除は完了です。
イメージの確認と削除
次はイメージの削除です。
~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
hello-world latest e38bc07ac18e 3 weeks ago 1.85kB
~$
削除するには、イメージID(IMAGE ID
)を使います。
~$ sudo docker rmi e38bc07ac18e
Untagged: hello-world:latest
Untagged: hello-world@sha256:f5233545e43561214ca4891fd1157e1c3c563316ed8e237750d59bde73361e77
Deleted: sha256:e38bc07ac18ee64e6d59cf2eafcdddf9cec2364dfe129fe0af75f1b0194e0c96
Deleted: sha256:2b8cbd0846c5aeaa7265323e7cf085779eaf244ccbdd982c4931aef9be0d2faf
~$
削除できたか確認します。
~$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
~$
きれいになりました。
さいごに
無事にDocker
をインストール出来ました。
次回は、LAMP
環境を作ってWordPress
を入れようと思います。
Docker
は概念を理解するのがなかなかむずかしく、とっつきにくいイメージがありました。
実際にインストールをしてみて、感覚がつかめてきました。
うまく活用すれば軽量なコンテナで色々な環境を構築できそうです。
ありがとうございました。
コメント
[…] Debian stretch に Docker を入れてみた […]
[…] 参考サイト:Debian stretch に Docker を入れてみた […]
[…] Debian stretch に Docker を入れてみた […]