背景
- 先日Jshellの記事を書いた
- その前にはJavaのバージョンテストの記事も書いた
- バージョンの取得をなんとなくできていたものの、ちゃんと理解せずにdocker imageを取得していたので、備忘録的に理解したことをアウトプットしておく
用意したもの
- terminal
- Google Chrome
まずはじめにDocker hubとは?
- https://hub.docker.com/
- クラウド上にDockerコンテナ公開されているオープンソースのサービス(日本語あってます?)
もう少しわかりやすく言うと
- 無料で使える
- Dockerのイメージ(例えばJavaとかKotlinとか)が置いてあって、それを指定して取得してあげることで、ローカルとかCI環境で環境構築を可能にしてくれるやつ(違ったらすみません)
で、本題
- 先日の記事で・・・
docker run -it openjdk:11 jshell
と書きましたが、、、"openjdk:11"ってなによ?って思ったわけです。(わからないまま記事にしてごめんなさい)
結論
- 要するに最初の検索で引っかかったやつ(これがリポジトリで)次にたくさん出てきたやつ(これがタグ(カンマ区切りのやつなら、どれを指定しても問題ないみたい))をdockerコマンドにうまい具合に渡せてあげていたおかげで実行できていたらしいです。
今度は・・・
- ここまでで、なんとなくリポジトリとタグの指定の仕方はわかったのですが新たな疑問が生じました
なんでこんなにタグがあるんだろう?
- すごい疑問でした
- なんなら、Java11を使うのにどれを選べば良いのか決め手に欠いていました
結論
- 微妙にimageの中身が違う!!!
試しにこの2つを比較してみました
すると・・・
きっかけ
- これがわかったのは、最初に上の方のやつ(oracleの方)を指定していたのですが、日本語を渡したときに文字化けしてしまってどうしようかなーと対処法を調べてたときに、ちゃんとリポジトリの中までみたことで原因と代替案が見つかった次第です
まとめ
- 普段コーディングしてばかりで、こういうところの理解を疎かにしていたことを痛感した
- 気になったこと(なんで動いているんだろう?とか)をちゃんと気にすることで意外な発見ができる!
参考リンク