Windows10上のVirtualBoxで稼働するUbuntuにDockerをインストール

# 概要
Ubuntuで、pythonを実行できる環境を整備したいが、pythonは頻繁にバージョンアップするし、プログラムの目的ごとにpipで追加したいパッケージのバージョンが異なったりする。
venv(または、pyenv等)で切り替えることも検討したが、もういっそコンテナの方が便利かも・・・
ということで、Windows10上のVertualBoxで稼働するUbuntuにDockerをインストールする手順・・・

基本的には、以下に記載の手順通り。
「Install Docker Engine on Ubuntu」
https://docs.docker.com/engine/install/ubuntu/

Windows10のVirtualBoxインストール手順はこちら
[VirtualBox](https://qiita.com/HirMtsd/items/be1c8afe708e901e1100)

VirtualBoxにUbuntuをインストールする手順はこちら
[Ubuntu](https://qiita.com/HirMtsd/items/225c20b77a7cd5194834)


# 前準備
## 既存Dockerの確認
Ubuntuにログイン。
[アクティビティ]-[アプリケーションを表示する]を選択。
[端末]を起動し、以下のコマンドを実行し、Dockerがinstallされていないことを確認する。

```
apt list --installed | grep docker
```

![001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/1c5579c3-8761-58b7-7dc9-71092e5836ad.png)

もしインストールされていたら、先に削除しておくことをお勧め。

```
sudo apt remove docker docker-engine docker.io containerd runc
```

## Dockerフォルダの確認
以下のコマンドを実行し、旧バージョンの残骸がないことを確認する。

```
ls /var/lib
```

![002.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/0fa3aead-0bc0-6e3e-d2f4-150ab92e1165.png)
dockerフォルダがないことを確認

もし存在していたら、削除しておく。

```
sudo rm -rf /var/lib/docker
```

# リポジトリの設定
## 必要なコマンドの追加
以下のコマンドを実行し、リポジトリ追加のために必要なコマンドがインストールされているか確認する。

```
apt list --installed | grep apt-transport-https
apt list --installed | grep ca-certificates
apt list --installed | grep curl
apt list --installed | grep gnupg-agent
apt list --installed | grep software-properties-common
```

![003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/76a4daac-56a4-2ddf-75aa-9ecff393a234.png)
上記の結果を確認し、インストールされていないものをインストール。
(例では、ca-certificates、software-properties-commonはインストールされているのでインストール不要。)

```
sudo apt install apt-transport-https
sudo apt install ca-certificates
sudo apt install curl
sudo apt install gnupg-agent
sudo apt install software-properties-common
```

![004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/8d8fae51-7b65-8807-f1db-a12abfed0b34.png)
![005.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/cd44a16d-e719-d564-f741-d2a7f7d44fc0.png)
![006.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/1f941826-bb99-8d0f-54f0-798eef38790c.png)


## apt-keyの設定
以下のコマンドを実行。

```
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
```

確認

```
sudo apt-key fingerprint 0EBFCD88
```

![007.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/7a206e90-09e0-6460-50af-0d8a15dd42e3.png)

リポジトリ追加

```
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
```

![008.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/ed2d5985-46cc-7c3a-ecd3-d0e20c6b3963.png)


# インストール
以下のコマンドを実行。

```
sudo apt install docker-ce
```
![101.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/4e3012e7-1000-00ea-c8d8-e55c78f37322.png)
途中確認ダイアログが表示されたら、yを入力し、[Enter]キーを押下。
![102.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/e8cdb7ec-9b3c-4ea3-5be4-bbe69be1ecf4.png)
インストール終了。

# 動作確認
以下のコマンドを実行。

```
sudo docker version
```
![103.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/b26a0f58-18f5-611b-dbd3-59df43a47f0f.png)
バージョン情報が正しく表示されていることを確認。

以下のコマンドを実行。

```
sudo docker run hello-world
```
![104.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/9f3bb1ae-86a8-8d30-3757-0dbfe52dfc46.png)
正常にDockerが動作することを確認。

# Docker実行権限の追加
## 一般ユーザエラー
デフォルトの状態では、rootユーザしかdockerを使用できない。

![201.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/79ef2af4-90ec-ccbf-b084-15b9e1c817d5.png)

## 権限追加
一般ユーザでdockerを使用するためには、以下の権限追加が必要。

```
sudo usermod -a -G docker (権限追加するユーザ)
```

反映させるためには、再起動。
(systmctl restart dockerを実行し、当該ユーザのターミナルを再接続してもOK。)

```
sudo reboot
```

![202.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/a1856f5c-a109-af77-003f-71c18fb0ba65.png)

## 動作確認
以下のコマンドを実行。

```
docker run hello-world
```

![203.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/321153/4ae59386-74bf-948e-a2a8-fd229bc837ee.png)
一般ユーザでdockerを使用できるようになった。


# 参考
https://qiita.com/zembutsu/items/bedb18e1061303e217b8