［クイズ］Docker その１

Dockerに関連するクイズだよ！

1. Dockerイメージをリストするためのコマンドはどれですか？
A. `docker ps`  
B. `docker images`  
C. `docker list`  
D. `docker containers` 
正解 B（なお、psは実行中のコンテナの一覧（list）と状態（status）を表示するコマンド。listとcontainersというコマンドはない。）
　
2. イメージを指定してDockerコンテナを起動するコマンドはどれですか？
A. `docker run <image>`  
B. `docker start <image>`  
C. `docker create <image>`  
D. `docker launch <image>`  
正解 A （dockerでは、imageからcontainerを創造し、創造したcontainerを開始する。この作成と実行を一度に行うには、 `docker run <image>` コマンドを使う。なお、launchというコマンドはない。）
　
3. Dockerコンテナの状態（status）を確認するコマンドはどれですか？
A. `docker status`  
B. `docker inspect <container>`  
C. `docker ps`  
D. `docker state <container>`  
正解 C （実行中のコンテナの一覧（list）と状態（status）を表示するには、`docker ps`コマンドを使う。なお、statusやstateというコマンドはない。）
　
4. Dockerコンテナを停止するためのコマンドはどれですか？
A. `docker stop <container>`  
B. `docker pause <container>`  
C. `docker kill <container>`  
D. `docker end <container>`  
正解 A （指定されたコンテナを停止するには、`docker stop <container>` コマンドを使う。pauseは指定されたコンテナを一時停止、killは指定されたコンテナを強制終了するコマンド。なお、endというコマンドはない。）
　
5. Dockerコンテナ内でシェルを（新たに）起動するコマンドはどれですか？
A. `docker shell <container>`  
B. `docker exec -it <container> /bin/bash`  
C. `docker run shell <container>`  
D. `docker attach <container>`  
正解 B （実行中のコンテナ内でシェルを新たに起動するには、`docker exec -it <container> /bin/bash` コマンドを使う。なお、attachは起動しているシェルに接続するコマンド。shellやrun shellというコマンドはない。）
　
6. Dockerイメージを削除するコマンドはどれですか？
A. `docker rmi <image>`  
B. `docker delete <image>`  
C. `docker remove <image>`  
D. `docker rm <image>`  
正解 A （指定したイメージを削除する場合、`docker rmi <image>` コマンドを使う。なお、rmは指定したコンテナを削除するコマンド、deleteやremoveというコマンドはない。）
　
7. Dockerコンテナのログを表示するコマンドはどれですか？
A. `docker log <container>`  
B. `docker logs <container>`  
C. `docker showlogs <container>`  
D. `docker viewlogs <container>`  
正解 B （指定したコンテナのログを表示する場合、`docker logs <container>` コマンドを使う。なお、logs以外のコマンドはない。）
　
8. あるDockerコンテナのネットワーク設定を確認するコマンドはどれですか？
A. `docker inspect <container>`  
B. `docker network <container>`  
C. `docker netinspect <container>`  
D. `docker network ls`  
正解 A （あるコンテナのネットワーク設定を確認するには、`docker inspect <container>` コマンドを使う。なお、`docker network ls`は、ネットワークの一覧を表示するコマンド。）
　
9. Dockerイメージの脆弱性を走査するためのツールはどれですか？
A. `docker scan <image>`  
B. `docker audit <image>`  
C. `docker security <image>`  
D. `docker inspect <image>`  
正解 A （Dockerイメージのセキュリティスキャンを実行するには、`docker scan <image>` コマンドを使う。なお、inspectはイメージの設定を表示するコマンド。auditやsecurityというコマンドはない。）
　
10. Dockerコンテナを別のホストに移行する時に使用するコマンドはどれですか？
A. `docker commit <container> <new-image>`  
B. `docker save <image> | gzip > <image>.tar.gz`  
C. `docker export <container> -o <container>.tar`  
D. `docker cp <container> <new-host>`  
正解 C （コンテナを別のホストに移行、つまりエクスポートするには、`docker export <container>`を使う。選択肢では、出力方法としてtar形式を指定している。なお、commitはコンテナからイメージを作るコマンド。saveはイメージを圧縮するコマンド。cpはコンテナをコピーするコマンド。）
　
11. Dockerのデフォルトネットワークモードは何ですか？
A. `host`  
B. `none`  
C. `bridge`  
D. `overlay`  
正解 C 
　
12. Dockerコンテナのリソース使用量（CPU、メモリ）を制限するためのオプションはどれですか？
A. `--limit`  
B. `--resources`  
C. `--quota`  
D. `--cpus` と `--memory`  
正解 D （`--cpus` と `--memory` オプションを使用して、DockerコンテナのCPUおよびメモリ使用量を制限できる。--limit、--resources、--quotaというオプションはない。）
　
13. Dockerイメージのビルドコンテキストを指定するためのファイルはどれですか？
A. `Dockerfile`  
B. `context.yaml`  
C. `build.yaml`  
D. `docker-compose.yml`  
正解 A （Dockerイメージのビルドに使用されるファイルは、 `Dockerfile` 。docker-compose.ymlは、複数のコンテナを一括定義するファイル。他のファイルは使われない。）
　
14. Dockerコンテナにボリュームを（シンプルに）マウントするためのオプションはどれですか？
A. `--mount`  
B. `--volume`  
C. `--attach`  
D. `--bind`  
正解 B （`--volume` または `-v` オプションを使用して、コンテナにボリュームをマウントできまる。--mountでもマウントできるが、詳細な設定が必要になる。）
　
15. Docker Swarmでサービスを作成するコマンドはどれですか？
A. `docker service create`  
B. `docker swarm create`  
C. `docker deploy service`  
D. `docker service deploy`  
正解 A （ Docker Swarmで新しいサービスを作成するコマンドは、`docker service create`。他のコマンドはない。）
　
16. Dockerコンテナを削除するためのコマンドはどれですか？
A. `docker delete <container>`  
B. `docker rm <container>`  
C. `docker remove <container>`  
D. `docker kill <container>`  
正解 B （コマンドは、指定されたコンテナを削除するコマンドは、`docker rm <container>` 。killは強制終了するコマンド。deleteやremoveというコマンドはない。）
　
17. Dockerコンテナのセキュリティ設定を強化するために推奨される方法はどれですか？
A. コンテナをルートユーザーとして実行する  
B. 最小限の権限を持つユーザーを使用する  
C. コンテナをパブリックネットワークに直接接続する  
D. コンテナイメージを頻繁に再構築する  
正解 B 
　
18. Dockerコンテナのファイルシステム変更をイメージとして保存するためのコマンドはどれですか？
A. `docker commit <container> <new-image>`  
B. `docker save <container>`  
C. `docker export <container>`  
D. `docker copy <container>`  
正解 A （`docker commit <container> <new-image>` コマンドは、コンテナのファイルシステム変更を新しいイメージとして保存する。）
　
19. Docker Composeでマルチコンテナアプリケーションを（新たに）起動するためのコマンドはどれですか？
A. `docker-compose start`  
B. `docker-compose up`  
C. `docker-compose run`  
D. `docker-compose launch`  
正解 B （`docker-compose up` コマンドは、Docker Composeファイルに定義されたすべてのサービスを起動する。startは既存のマルチコンテナを開始するコマンド。runは初期設定するコマンド。launchというコマンドはない。）
　
20. Dockerコンテナのセキュリティポリシーを定義するために使用するファイルはどれですか？
A. `docker-policy.yaml`  
B. `security.json`  
C. `policy.json`  
D. `seccomp.json` 
正解 D （`seccomp.json` ファイルは、Dockerコンテナのセキュリティポリシーを定義するために使用される。）