##ターミナル内でのDockerコマンドの操作
今回は実際に学んでターミナル内で動かしたDockerコマンドについて説明していきたいと思います。
###Dockerについての情報の確認
# docker info
Dockerについての情報を見ることができます。
###ローカル環境のDockerイメージの一覧の確認
# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
wordpress latest 2 weeks ago 616MB
nginx latest 3 weeks ago 133MB
docker_memo_laravel_php latest 5 weeks ago 1.15GB
docker_memo_php latest 5 weeks ago 1.03GB
mysql 5.7 5 weeks ago 448MB
docker/getting-started latest 5 months ago 28MB
nginx 1.19.1 15 months ago 132MB
phpmyadmin/phpmyadmin 5.0.0 22 months ago 469MB
ローカル環境のDockerイメージの一覧を確認できます
※IMAGE IDは省略してます
###ローカル環境のDockerコンテナの一覧を確認
# docker ps -a
ローカル環境のDockerコンテナ(Dockerイメージをもとに起動させたコンテナのこと)
の一覧を確認できます。
※実行結果は省略しています
###Dockerイメージを使用してDockerコンテナを起動
# docker run hello-world
Unable to find image 'hello-world:latest' locally①
latest: Pulling from library/hello-world②
2db29710123e: Pull complete
Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51
Status: Downloaded newer image for hello-world:latest
Hello from Docker!③
This message shows that your installation appears to be working correctly.
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
Share images, automate workflows, and more with a free Docker ID:
https://hub.docker.com/
For more examples and ideas, visit:
https://docs.docker.com/get-started/
Dockerイメージを使用してDockerコンテナを起動するコマンドです
ローカル環境にはDockerイメージがない→①
そのためDocker Hubで探しに行き、存在すればDockerイメージをダウンロードします→②
hello-worldイメージのダウンロードが完了したら、そのイメージを使用してコンテナを起動させています。
そして今回例に出したhello-worldイメージは、コンテナ起動をしたら、コンテナの中で③以降のメッセージを出力するようなDockerイメージとなっています。
これらの処理についてが
To generate this message, Docker took the following steps:
1. The Docker client contacted the Docker daemon.
2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
(amd64)
3. The Docker daemon created a new container from that image which runs the
executable that produces the output you are currently reading.
4. The Docker daemon streamed that output to the Docker client, which sent it
to your terminal.
に記載されています。
# docker images
hello-world latest feb5d9fea6a5 6 weeks ago 13.3kB
このように示されているのが確認できました。
実は先ほどの
# docker run hello-world
こちらのコマンドは
①Dockerイメージのダウンロード
②コンテナの起動
という2つの処理をを実行しました。
①Dockerイメージのダウンロード のみを行いたい場合は
# docker pull?hello-world
を使用します。
コンテナの状態を確認
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
eb09716b68a5 hello-world "/hello" 16 minutes ago Exited (0) 16 minutes ago elastic_vaughan
のようになっています
表示内容としては、
CONTAINER ID:コンテナのID、
IMAGE:使用したDockerイメージ、
COMMAND:コンテナ起動時にコンテナ内で実行するコマンド、
CREATED:コンテナを作成したタイミング、
STATUS:コンテナ状態(起動中、停止中など)、
PORTS:ポートフォワード(ポートにやってきたデータを別のところに転送する)設定
NAMES:コンテナの名前、
となっています。
Dockerコンテナ、イメージの削除
まずはコンテナの削除についてです
# docker rm <コンテナ名>
または
# docker rm <CONTAINER ID>
となります。
hello-worldを例にすると
# docker rm elastic_vaughan
または
# docker rm eb09716b68a5
となります。次にイメージの削除についてです。
# docker rmi <Dockerイメージ名>
または
# docker rmi <IMAGE ID>
で削除します。
今回のを例にすると
# docker rmi hello-world
または
# docker rmi feb5d9fea6a5
となります。
コマンドの間には半角スペースが必要なので注意しましょう。