背景
Dockerの説明とインストールは終わりましたため、今回はDockerの常用コマンドを紹介します。
3. Dockerのコマンド
3-1. 起動類とヘルプ類
| コマンド | 機能 |
|---|---|
| systemctl start docker | dockerを起動 |
| systemctl stop docker | dockerを停止 |
| systemctl restart docker | dockerを再起動 |
| systemctl status docker | dockerのステータスを確認 |
| systemctl enable docker | スタートアップ |
| docker info | dockerの情報を確認 |
| docker --help | コマンドマニュアルを全体表示 |
| docker [コマンド名] --help | 個別のコマンドマニュアルを表示 |
3-2. イメージ(image)コマンド
| 機能 | コマンド |
|---|---|
| docker images | ロカールリポジトリのイメージ一覧を表示 |
| docker search [イメージ名] | イメージを検索 |
| docker search --limit [数] [イメージ名] | 件数制限でイメージを検索 |
| docker pull [イメージ名] | リモートリポジトリからイメージをダウンロード |
| docker system df | システム上の Docker リソースのディスク使用状況を表示 |
| docker rmi [イメージ名] | イメージを削除、-fを付けたら、強制削除 |
3-3. コンテナ(container)コマンド
-
①前提:
イメージがあること -
②コンテナを新規・起動:
docker run [OPTIONS] IMAGE [COMMAND] [ARG...]
例:docker run -it --name= myubuntu ubuntu /bin/bash
OPTIONS一覧:
| OPTION | 説明 |
|---|---|
| –name=“コンテナの名前” | コンテナの名前を指定、指定しないと、ランダムの名前が付けられる |
| -d | バックグラウンドでコンテナを実行 |
| -i | –interactiveの略。標準入力をオープンし、コンテナに接続されたシェルに入力を提供する |
| -t | –ttyの略。コンテナ内で擬似 TTY(端末)を作成する。よく-iと一緒に使う |
| -P | 大文字のP。ランダムでportをマッピング |
| -p | 小文字のp。 一番シンプルなのは「-p hostPort:containerPort」 |
③ほかのコマンド
| コマンド | 説明 |
|---|---|
| docker ps | 実行中の Docker コンテナの一覧を表示 |
| docker start | 停止している Docker コンテナを開始 |
| docker stop | 実行中の Docker コンテナを停止 |
| docker restart | 実行中の Docker コンテナを再起動 |
| docker rm | 停止している Docker コンテナを削除 |
| docker kill | Dockerコンテナを強制停止 |
| docker logs | Docker コンテナのログを表示 |
| docker inspect | Docker コンテナの詳細情報を表示 |
| docker exec | 実行中の Docker コンテナ内に入る |
| docker attach | 実行中の Docker コンテナ内に入る ※execとattachの違い |
| docker cp | Docker コンテナとホストマシンの間でファイルをコピー |
3-4. デモ1(MySQLコンテナの新規とログイン)
-
①MySQL5.7イメージをリモートリポジトリからpull
docker pull mysql:5.7

-
②バックグラウンドでMySQLコンテナを新規起動
docker run -d -p 3306:3306 --name=mysql-demo -e MYSQL_ROOT_PASSWORD=root mysql:5.7

-
③execでコンテナに入って、退出
docker exec -it mysql-demo bash

3-5. デモ2(ubuntuコンテナでdocker execとdocker attachの違いを区別)
Dockerコンテナ内で操作 attachとexecの違いについて、
簡単に言えば:
-
docker exec コマンドは、実行中のコンテナ内で新しいプロセスを開始するために使用されます。
-
一方、docker attach コマンドはコンテナ内で現在実行されているプロセスの標準入力、標準出力、標準エラー出力に直接アクセスできます。
-
デモ

-
docker ps -aで終了したコンテナを確認できます

-
個人感想:execとattachのどちらを使うかは個人自由ですが、attachを使ってコンテナ内に行く場合、不注意でexitしたら、コンテナが終了してしまいますので、execをお勧めします。
3-6. デモ3(docker cp:コンテナファイルをコピー)
docker cpを使って、dockerコンテナからファイルをコピーして、ホスト側に貼り付けます。
docker cp [コンテナIDまたはコンテナ名]:[コンテナ内のコピー対象] [ホスト側格納場所]

3-7. デモ4(docker exportとimport:コンテナをアーカイブ化)
docker export [コンテナIDまたはコンテナ名] > ファイル名.tar.gz
cat ファイル名.tar.gz | docker import - イメージ名:タグ名

コメント欄