Open2
dockerの勉強

windows環境の構築
- CPUの仮想支援機能の有効化
- Intel Virtualization Technologyを有効化
- UEFIファームウェア(BIOS)から
- windows - 「設定>更新とセキュリティ>回復」から「今すぐ再起動」
- WSL2のインストール
- 「設定 >Windowsの機能の有効化または無効化」
- 「仮想マシンプラットフォーム」(下の方)を☑
- ここで再起動が必要な場合あり
- 管理者として、PowerShellを実行し以下を確認
-
wsl --set-default-version 2
- ここでエラーとなる場合、カーネルの更新↓より
- https://aka.ms/wsl2kernel
-
- WSL - Ubuntuのインストール
- Microsoft Storeみたいに、Ubuntuをインストール
- 起動後、動けばok
- Docker Desktopのインストール
- https:// www. docker. com/ products/ docker-desktop よりダウンロード
- インストール時、以下の項目を確認
- "Enable WSL2 Windows Features"
- インストール後、Settingsから以下を確認
- General : Start Docker Desktop when you log in
- General : Use the WSL2 based engine
- Resources : Enable integration with my default WSL distro
- DockerHubの登録
- https:// hub. docker. com/ より「 Sign Up」
動作の確認
docker run -it --rm python

基本コマンド
[image]コマンド
[ls, rm]イメージの一覧表示→削除→表示
> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
python latest 49e3c70d884f 2 weeks ago 885MB
> docker image rm 49e3c70d884f
Untagged: python@sha256:07c51c65ab9c1a156a1fb51eff3ec04feff7b85b2acb7d6cc65148b218d67402
Deleted: sha256:49e3c70d884f2640959e0392c03f5352d852e673a28dca3b16d2d9c400149906
Deleted: sha256:66570c78d54700760dfb2f675865e487762b6bc36220901b0a08f939ff602ae0
Deleted: sha256:6d67af3ca0b835d4d5902ba4284e2ff38d90980d336b2f8faf6ab6373efef373
Deleted: sha256:8933b2fffa27d3d204da326cf6244865663e9906034f14e540c617e1aac0c1d1
Deleted: sha256:271fda04686ab23e4a2707071cbe186f4b1087b487be95fae68541fd73fd3217
Deleted: sha256:ee633e736a09f20bf49f2efb1a741824fbc3559053b10c8b76c5d7835461ac79
Deleted: sha256:ac996dca9c2f86e5d2744187de88cd328f12dde417a7950dff33448906228ae3
Deleted: sha256:e4ed057c6550560fb44b9146dadd5c62bfc00404ba69937c89a44e10485c9010
Deleted: sha256:985d0a2cd810a6fc7b68886aee94ee060acd63e122a1def04370dac5fa9d05f6
Deleted: sha256:e2c6ff46235709f5178ab7c1939f4fba7237ffde84e13b1582fa5f0837c1d978
> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
>
[prune]不要なイメージを一括削除
> docker image prune -a
[pull]DockerHubからイメージを取得
> docker image pull python:3.8-slim
3.8-slim: Pulling from library/python
f7ec5a41d630: Pull complete
6f318b7b4c32: Pull complete
65be07e2a755: Pull complete
d843bb564d1d: Pull complete
044f430d907f: Pull complete
Digest: sha256:bdc39f13da35be9a8e592f8f49d12a4552ffd3e90b1fb866f7ab628f3197609d
Status: Downloaded newer image for python:3.8-slim
docker.io/library/python:3.8-slim
> docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
python 3.8-slim b281745b6df9 2 weeks ago 114MB
>
[container]コマンド
[ls]
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
[run]コンテナを対話型モードで起動
> docker container run -it --rm python:3.8-slim /bin/bash
root@fddadfb47b1c:/#
root@fddadfb47b1c:/# uname -a
Linux fddadfb47b1c 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 GNU/Linux
root@fddadfb47b1c:/#
root@fddadfb47b1c:/# python
Python 3.8.9 (default, Apr 10 2021, 15:55:09)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version
'3.8.9 (default, Apr 10 2021, 15:55:09) \n[GCC 8.3.0]'
>>> exit()
root@fddadfb47b1c:/# exit
exit
>
- run関連
| オプション | 説明 |
| –name | コンテナ に 名前 を 付ける |
| -it | 対話 型 モード で 起動 |
| -d | バックグラウンド モード で 起動 |
| -p | ホスト に 公開 する ポート の 指定 |
| –mount | フォルダ の マウント |
| –rm | 終了 時 に コンテナ を 削除 |
[run]バックグラウンドモードで起動
> docker run --name prj1_websv -d -p 8080:80 nginx
Unable to find image 'nginx:latest' locally
latest: Pulling from library/nginx
f7ec5a41d630: Already exists
aa1efa14b3bf: Pull complete
b78b95af9b17: Pull complete
c7d6bca2b8dc: Pull complete
cf16cd8e71e0: Pull complete
0241c68333ef: Pull complete
Digest: sha256:75a55d33ecc73c2a242450a9f1cc858499d468f077ea942867e662c247b5e412
Status: Downloaded newer image for nginx:latest
7844eab1bd8f21b773b23d23ad802e2eab998bd590db87d5953d1275bafa9225
>
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7844eab1bd8f nginx "/docker-entrypoint.…" 3 minutes ago Up 3 minutes 0.0.0.0:8080->80/tcp prj1_websv
>
=>ブラウザで
にアクセス[stop]コンテナの停止
> docker container stop prj1_websv
prj1_websv
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7844eab1bd8f nginx "/docker-entrypoint.…" 5 minutes ago Exited (0) 12 seconds ago prj1_websv
>
[create, start]コンテナの起動
> docker container create -it --rm --name python1 python:3.8-slim /bin/bash
e1bff3f971fab32857cb147d41c075f5fdc256025fdaa4032cd6532564ce15a8
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
e1bff3f971fa python:3.8-slim "/bin/bash" 25 seconds ago Created python1
b0b6d4de9c8d python:3.8-slim "/bin/bash" 3 minutes ago Created exciting_moser
7844eab1bd8f nginx "/docker-entrypoint.…" 12 minutes ago Exited (0) 7 minutes ago prj1_websv
> docker start -ia python1
root@e1bff3f971fa:/# python
Python 3.8.9 (default, Apr 10 2021, 15:55:09)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.version
'3.8.9 (default, Apr 10 2021, 15:55:09) \n[GCC 8.3.0]'
>>> exit()
root@e1bff3f971fa:/# exit
exit
>
[restart]コンテナの再起動
> docker container restart prj1_websv
prj1_websv
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b0b6d4de9c8d python:3.8-slim "/bin/bash" 10 minutes ago Created exciting_moser
7844eab1bd8f nginx "/docker-entrypoint.…" 19 minutes ago Up 6 seconds 0.0.0.0:8080->80/tcp prj1_websv
>
[attach/exec]コンテナへの接続
docker container exec -it prj1_websv /bin/bash
[stop->rm]コンテナの削除
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
7844eab1bd8f nginx "/docker-entrypoint.…" 27 minutes ago Up 8 minutes 0.0.0.0:8080->80/tcp prj1_websv
> docker container stop prj1_websv
prj1_websv
> docker container rm prj1_websv
prj1_websv
> docker container ls -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
>
[rm -f]コンテナの強制削除
docker image rm -f コンテナ ID
[prune] 停止状態のコンテナを一括削除
docker container prune [オプション]
docker container prune -f