Debian stretch に Docker を入れてみた

PC
スポンサーリンク

WordPressのテーマを1から自作することになりました。

サーバに開発用のWordPressを設置して作っていてもいいですが、やはりローカル環境で作成するのが望ましいと考えました。

Debian stretch ですので、LAMP環境をすぐに作成することも可能です。

しかし、最近は動作の軽いDockerが気になっていました。

せっかくですので、DockerLAMP環境を構築しようと思います。

今回は、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
~$ 

リポジトリの追加

stretchstable として登録します。

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は概念を理解するのがなかなかむずかしく、とっつきにくいイメージがありました。

実際にインストールをしてみて、感覚がつかめてきました。

うまく活用すれば軽量なコンテナで色々な環境を構築できそうです。

 

ありがとうございました。

 

スポンサーリンク

コメント

  1. […] Debian stretch に Docker を入れてみた […]

  2. […] 参考サイト:Debian stretch に Docker を入れてみた […]