「まだDockerもKubernetesも知らないの!?」って笑われない為のチュートリアル【Windows + Docker編】


- コンテナ？どんな時につかうんやろ
- くじらさんチームのマークかな？

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/73512911-bd47-d684-eaa4-aa2c300dd5dc.png)


- なんか外注した機械学習モデルがDockerとやら使って納品されてきたぞ
- windowsやからLinux系疎いわ~
- イメージすらついてないわ・・・アカン、このままではバカにされる・・・

![0011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1154133b-15ec-367c-ecfc-0f39583e60cd.png)


#DockerとK8s触ったことありますか？

(今更ですが)よくわからん技術はとりあえず触ってみるに限る


#用意した環境

- Microsoft Windows 10 Professional 64-bit (or Enterprise )
- [Docker hub アカウント登録](https://hub.docker.com/)
- [Docker Desktop for Windows](https://hub.docker.com/editions/community/docker-ce-desktop-windows/)
- [git 64-bit setup exe](https://git-scm.com/download/win)
- gitを環境変数に入れる


#Docker hub アカウント登録

自分のIDとpassを決めてEmail打ち込んで登録。
確認メールが届くので承認する。

#gitをインストールして環境変数のpathに入れる


gitのファイルの場所を開く、からgit Bashの存在しているフォルダのpathを確認

![05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/6baed629-98a2-85ff-9f83-c801b49c60b6.png)


ショートカットのプロパティから
C:\Program Files\Git\binに入っていることを確認して、これをコピー

![06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f5bb1e07-c75e-9508-4dc8-bd59fd07bd33.png)


左下検索窓から環境変数の編集を検索。

![03.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/0032fc5e-5e60-ecd6-3832-28738a86bdd5.png)


pathの欄に編集→新規でpathを入力しておく

windows powershell にgitと打ち込み
動いていることを確認。


![07.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/1ab66ed2-049c-c852-596e-23aa38b3b667.png)






#docker hubからローカルにclone


powershellを起動して


```
git clone https://github.com/docker/doodle
```

会社PCでproxyが問題なら

git config --global http.proxy http://000.00.000.000:8080
プロキシがある場合は情報システム部に確認しましょう。


Docker for desktopのアプリ上の右側窓で実行したければ、プロキシ設定をsettingにも入力する必要あり
(http://)は除く数字のみ。


![11.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/bbfc6e7c-69f7-ae79-003a-edfa6c4bfe77.png)


このcloneコマンドで、githubのリポジトリ(フォルダ)を自分のPC上にDLしてきている。
powershellのcdで指定された場所を見るとフォルダが出来ているのが分かる


![09.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/506ecb54-3bdc-0fd0-ca11-125682e27dcc.png)









#Docker Desktop for Windowsのインストール

ダウンロードした「Docker Desktop Installer.exe」を実行

右下の隠れているインジケーターから「くじらさんチーム」を右クリックしてsing in
learnをクリックするとチュートリアルが始まる。

![01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/59717d34-be9d-7cea-920f-4af1cf1e4e5d.png)

現在2020/06/22時点では起動するとpower shell も同時に表示されている(便利になってる)
1月ごろはただコマンドが書かれているだけだったのに。



![02.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/f99081fd-7f49-562b-3cb4-0c4313f34994.png)


#buildからpush

```
cd doodle/cheers2019
```

取ってきたフォルダに移動して

```
docker build -t my_cheers_2020 .
```

名前はとりあえず適当に。

proxy環境だとここでもひっかかると思う
コマンド末尾にproxyを指定するか、
buildしたいフォルダの中のDockerfileのFROMの下あたりに書き込んでおく


```
FROM golang:1.11-alpine AS builder

ENV http_proxy=http://000.00.000.000:8080
ENV https_proxy=http://000.00.000.000:8080

RUN apk add --no-cache git
RUN go get github.com/pdevine/go-asciisprite
WORKDIR /project
COPY cheers.go .
```


#imageをつくっていく

```
docker image list
```

buildによってイメージが出来ていることを確認

#listで確認したイメージ(IMAGE)を名指ししてコンテナをつくる

```
docker run -itd my-cheers-2020
```

#コンテナを確認

つくったコンテナの確認

```
docker ps
```

動いているコンテナの確認

```
docker ps -a
```

とまっているコンテナを確認

消したいときは確認して消す

```
docker rm 374015b73ebc
```

![14.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/b8674de1-763a-f1a3-93ff-5c4b7c010bf5.png)



#コンテナを起動
コンテナIDで指定でなくIMAGE名で起動

```
docker run -it my_cheers_2020
```


![02.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/0825951e-2295-a42e-3c8b-be03555e1256.gif)


かわいい


#コンテナを止める

docker ps -a
でなく
docker ps
で出てくると削除できないのでコンテナIDを指定してとめてやる

```
docker stop 94603b1c31bf
```


#最後にイメージ名でイメージを削除する

```
docker rmi d605d4f2d997
```

複数同時も可能

```
docker rmi 06a4a7b5263d 8ecf5a48c789 7d0cdcc60a96 e116d2efa2ab
```

消えてることを確認

```
docker image list
```

消えなければ
強制的に-fを入れてけす

```
docker rmi -f ae5d22389f3e 5798306d1e16 7d0cdcc60a96
```


#作ったイメージを残しておきたいなら、docker hubに保存しとく

hubs2020という保存したい名前に付け替える

```
docker tag a73d3fb2da07 dockerhubで登録したID/hubs2020
docker image list
docker push dockerhubで登録したID/hubs2020
```

これで自分のdocker hubに保存(push)できた




![22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/275572/c9330825-232a-022f-1123-3b58615002dd.png)


また使いたくなったら

```
docker pull dockerhubで登録したID/hubs2020
```

とするとリポジトリでなく、イメージが直接ダウンロードされる


#Docker編はひとまず以上
dockerの超基本的なコマンド達を弄りました。
dockerを実行できる環境に来たので、これからK8Sや自分でイメージを作って遊んでいきます。
次は最低限のKubernetesを紹介。

つづく