VirtualBox上のUbuntu20.04にDockerCEをインストールしてみた。

UbuntuにDockerをインストールしてみた。

# 環境
VirtualBox6.1
ホストOS: Windows10 Home 20H2
ゲストOS: Ubuntu20.04 ＋ Docker20.10.22 ＋ nginx1.23.3

# インストール手順

以下のような方法で「端末」を開く
・「アクティビティ画面」から開く
・「アプリケーション画面」から開く
・[Ctrl]+[Alt]+[T]を押す

1.既存のパッケージのリストを更新
`sudo apt update`

2.aptがHTTPS経由でパッケージを使用できるようにするいくつかの必要条件パッケージをインストール
`sudo apt install apt-transport-https ca-certificates curl software-properties-common`

~~E: dpkgは中断されました。問題を修正するには 'sudo dpkg --configure -a'を手動で実行する必要があります。~~
~~というエラーが出たので~~
~~`sudo dpkg --configure -a`~~

~~もう一度~~
~~`sudo apt install apt-transport-https ca-certificates curl software-properties-common`~~ 


3.公式DockerリポジトリのGPGキーをシステムに追加
`curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -`

~~コマンド'curl'が見つかりません。次の方法でインストールできます：~~
~~というエラーが出たので~~
~~`sudo snap install curl  # version 7.86.0`~~

~~もう一度~~
~~`curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -`~~

4.DockerリポジトリをAPTソースに追加
`sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"`

※focal = ubuntu20.04のこと
※stable = 安定版のこと

5.追加されたリポジトリからDockerパッケージでパッケージデータベースを更新
`sudo apt update`

6.デフォルトのUbuntuリポジトリではなく、Dockerリポジトリからインストールしようとしていることを確認
`apt-cache policy docker-ce`

7.Dockerをインストール
`sudo apt install docker-ce`

~~以下のパッケージが自動でインストールされましたが、もう必要とされていません:~~
~~  libfprint-2-tod1 libjcat1~~
~~これを削除するには 'sudo apt autoremove' を利用してください。~~
~~とのことなので。~~
~~`sudo apt autoremove`~~

8.Dockerサービス（デーモン）が実行されていることを確認。（インストールが終わると自動起動されている。）
`sudo systemctl status docker`

```
● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset>
     Active: active (running) since Sat 2023-01-07 07:36:45 JST; 4min 14s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 8321 (dockerd)
      Tasks: 7
     Memory: 21.6M
     CGroup: /system.slice/docker.service
             └─8321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/cont>
```

Dockerをインストールすると、Dockerサービス（デーモン）だけでなく、
dockerコマンドラインユーティリティ、またはDockerクライアントも提供されます。
ブート時に自動起動するように設定されます。

# ユーザーをdockerグループに追加
`sudo usermod -aG docker ${USER}`

設定変更を反映する
`su - ${USER}`

sudoなしでdockerコマンドを試してみる
`docker -v`
```
nacanaca@admin-VirtualBox:~/dockertest/DockerFileBase$ docker -v
Docker version 20.10.22, build 3a2c30b
```

# docker.sock にグループでの書き込み権限を付与。
`sudo chgrp docker /var/run/docker.sock`

Dockerサービスを再起動する
`sudo service docker restart`

# 動作確認(サンプルコンテナの起動)
コンテナを起動してみる
`docker run hello-world`
※docker runコマンドはcreateコマンド＆startコマンド
※docker runコマンドはローカルにイメージがなければdocker hubから自動取得(pull)してから起動する

```表示例
（略）
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.
（略）

```
※初回の起動時はイメージファイルをダウンロードしてくるので時間がかかります。

# Docker Hub（Dockerイメージが保存されているDockerリポジトリ）
1.ブラウザでDocker Hubのサイトで新規アカウントを作成
2.無料プランを選択
3.メールが届くので Verify emaill addressのリンクをクリック（タップ）

※Docker イメージの search （検索）や pull （取得）は、アカウントを持っていなくても可能
※匿名ユーザーの場合、1つのIPアドレスにつき、6 時間ごとに 100 プル
※無料ユーザーの場合、6 時間ごとに 200 プル
※無料の Docker Hub アカウントは、プライベート・レジストリを１つ利用可能

# 参考にしたページ
https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04-ja

https://docs.docker.jp/v1.9/docker-hub/accounts.html

https://matsuand.github.io/docs.docker.jp.onthefly/docker-hub/download-rate-limit/