■ はじめに
Hello World (Nginx) でDockerの一連作業フローを理解する
目次
【0】遷移図 【1】Docker imageを取得 【2】Docker imageを一覧表示 【3】Docker imageの 履歴 を表示 【4】Docke Image 削除 1)補足:エラー「unable to remove repository reference "nginx"」が表示されたら 【5】操作例 1)nginx の場合 2)flink:1.18.0 の場合
【0】遷移図
+------------+ | Docker Hub | +------------+ | ↑ pull | | push ↓ | +------------+ build +--------------+ rmi | Dockerfile | ------> | Docker Image | ------> Deleted +------------+ +--------------+ ↙ ↗ create | ↑ commit run ↙ ↗ commit ↓ | +-----------+ stop +-----------+ rm | Container | ------> | Container | ------> Deleted | (Running) | <------ | (Stopped) | +-----------+ run +-----------+
【1】Docker imageを取得
# nginxの場合
docker pull nginx
新コマンドの場合
# nginxの場合 docker image pull nginx # flink1.18.0の場合 docker image pull flink:1.18.0
【2】Docker imageを一覧表示
docker images
新コマンドの場合
docker image ls
【3】Docker imageの 履歴 を表示
# どのように nginx が構築されたか表示 docker history nginx
https://docs.docker.jp/engine/reference/commandline/history.html
【4】Docke Image 削除
docker rmi nginx
# 確認
docker images
新コマンドの場合
docker image rm nginx
1)補足:エラー「unable to remove repository reference "nginx"」が表示されたら
* 以下の関連記事を参照のこと
Docker によるトラブルシューティング
https://dk521123.hatenablog.com/entry/2017/09/24/162257
【5】操作例
1)nginx の場合
# nginx のdockerイメージを取得する。 docker pull nginx # nginx のdocker イメージを起動する。 # docker run -p 80:80 --name nginx nginx # --detach: バックグランド起動 docker run --detach -p 80:80 --name nginx nginx # 作動中のコンテナ一覧を表示 docker ps # Webページをcurlを使って取得 curl localhost:80 # sh でコンテナに乗り込む docker exec -it nginx sh # ファイルを探索する find / -type d -name nginx | xargs grep -r html # 格納先されているデフォルトのWebページを表示 cat /usr/share/nginx/html/index.html # Hello,Worldで上書き echo "Hello World" > /usr/share/nginx/html/index.html # sh から抜ける exit # Webページをcurlを使って取得 「Hello,World」と表示されていればOK curl localhost:80 # nginx コンテナを停止 docker stop nginx # 停止中のコンテナも全て一覧表示 docker ps --all # nginx コンテナを削除 docker rm nginx # 停止中のコンテナも全て一覧表示 docker ps --all
2)flink:1.18.0 の場合
# flink:1.18.0 のdockerイメージを取得する。 docker image pull flink:1.18.0 # Dockerイメージを取得できたか確認 docker image ls # flink:1.18.0 のdocker イメージを起動し、内部に入る docker run --name flink -it flink:1.18.0 /bin/bash # [構文] docker run --name <コンテナ名> -it <イメージ> <実行コマンド> # [-it] -i or --interactive (標準入力) / -t or --tty (疑似端末) # 内部を探索 # https://dk521123.hatenablog.com/entry/2014/11/28/162708 # で扱った「/etc/apt/sources.list」を除く # コンテナから出る場合 exit
参考文献
https://qiita.com/ymd65536/items/8d956727a1a63944a9be
関連記事
Docker ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/24/160044
Docker ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2017/09/23/235818
Docker ~ Proxy環境下でDockerを使用する ~
https://dk521123.hatenablog.com/entry/2023/11/30/004707
WSL2 ~ Docker-CE / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/14/224428
WSL ~ Docker-CE + Genie / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2021/11/03/003836
Docker Desktop / WSL2 ~ Windows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/12/08/165505
Docker ~ Linux / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2018/04/10/234030
Docker ~ docker を sudo なしで実行する ~
https://dk521123.hatenablog.com/entry/2023/11/22/000000
Docker ~ 基本編 / docker network ~
https://dk521123.hatenablog.com/entry/2022/04/30/000000
Docker ~ 基本編 / Data Volume ~
https://dk521123.hatenablog.com/entry/2018/09/08/222100
Docker ~ 基本編 / Dockerfile ~
https://dk521123.hatenablog.com/entry/2020/04/14/000000
Docker ~ 基本編 / docker imageコマンド ~
https://dk521123.hatenablog.com/entry/2020/04/13/000000
Docker ~ 基本編 / docker container コマンド ~
https://dk521123.hatenablog.com/entry/2022/01/20/000000
Docker ~ 基本編 / レポジトリに関するコマンド ~
https://dk521123.hatenablog.com/entry/2023/01/21/000000
脆弱性エラー対応時に役立ったDockerコマンド
https://dk521123.hatenablog.com/entry/2024/02/03/020736
Docker ~ ファイルをコンテナにコピー ~
https://dk521123.hatenablog.com/entry/2022/04/27/000000
Docker ~ クリーンアップ / prune ~
https://dk521123.hatenablog.com/entry/2023/07/17/230956
Docker ~ Docker Hub への登録 ~
https://dk521123.hatenablog.com/entry/2024/01/21/125706
Docker ~ Dockerアンチパターン ~
https://dk521123.hatenablog.com/entry/2023/09/28/000000
Dockerfile / Docker Compose でシェルを実行する
https://dk521123.hatenablog.com/entry/2023/07/21/234509
Docker compose ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2022/04/28/000000
Docker compose ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2022/05/21/222910
Docker compose ~ 基本編 ~
https://dk521123.hatenablog.com/entry/2020/04/11/000000
Docker compose ~ docker-compose.yml ~
https://dk521123.hatenablog.com/entry/2020/12/18/152949
Docker compose ~ Version 2 ~
https://dk521123.hatenablog.com/entry/2023/01/02/000000
Docker compose ~ PostgreSQL ~
https://dk521123.hatenablog.com/entry/2023/07/20/025544
Docker compose ~ Pgweb/pgAdmin ~
https://dk521123.hatenablog.com/entry/2023/08/10/111919
Docker ~ トラブルシュート方法 ~
https://dk521123.hatenablog.com/entry/2023/12/12/034018
Docker によるトラブルシューティング
https://dk521123.hatenablog.com/entry/2017/09/24/162257
Windows / Docker Desktop でのトラブルシューティング
https://dk521123.hatenablog.com/entry/2020/12/11/115814
Proxy環境下でdocker pullしたらエラー
https://dk521123.hatenablog.com/entry/2024/02/08/144941
Docker ~ GO言語 ~
https://dk521123.hatenablog.com/entry/2022/01/14/102719
Docker ~ Webサーバ ~
https://dk521123.hatenablog.com/entry/2022/02/22/000000
Docker ~ WordPress ~
https://dk521123.hatenablog.com/entry/2022/04/29/000000
Docker ~ Redmine ~
https://dk521123.hatenablog.com/entry/2023/01/09/000000
Terminal ~ Windows Terminal ~
https://dk521123.hatenablog.com/entry/2020/12/10/094125
Terminal ~ Cmder ~
https://dk521123.hatenablog.com/entry/2023/12/27/002919
aptコマンド ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2014/11/28/162708