Dockerイメージとは
Dockerコンテナを作成するためのテンプレートのようなもの。
Dockerコンテナとは
Dockerイメージを元に作成され、ファイルシステムやアプリケーションが同梱されている箱のようなもの。外から見ると仮想環境のようなもの。
Dockerイメージを取得→コンテナ実行
gihyodocker/echo:latestというイメージを取得する。イメージはdockerhubから取得される。
$ docker image pull gihyodocker/echo:latest
ダウンロード後、以下のコマンドでコンテナを実行
$ docker container run -t -p 9000:8080 gihyodocker/echo:latest
2020/05/07 22:40:24 start server
9000ポート経由でHTTPリクエストを受けられるようになる。9000は、ホスト側のポート番号で8080がコンテナ側のポート番号になる。
実際にcurlコマンドでアクセスしてみる。
$ curl http://localhost:9000/
Hello Docker!!
イメージとコンテナの確認
イメージの確認
$ docker image ls
コンテナの確認
# 実行中のコンテナ
$ docker container ls
# 作成されたコンテナ一覧
$ docker container ls -a
ポート番号省略可能
# docker container run -t -p <ホスト側のポート番号>:8080 gihyodocker/echo:latest
$ docker container run -t -p 8080 gihyodocker/echo:latest
2020/05/07 22:48:10 start server
ホスト側のポート番号を指定しなかった場合、自動的に空いているポート番号が割り振られる。
割り振られるポート番号の確認方法はdocker container lsコマンドで確認できる。
$ docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a9d99aa10b05 gihyodocker/echo:latest "go run /echo/main.go" 56 seconds ago Up 55 seconds 0.0.0.0:32769->8080/tcp naughty_elion
上記でポート番号を確認し、再度curlを叩く場合、
$ curl http://localhost:32769/