【インターンステラ】KubernetesとDocker Image / GCP Cloud Shell

こんにちは、樋口です。今日は前回に引き続きKubernetesのDocker Imageについて学習しました。

前回まではこのチュートリアルを一通り試しましたが、最終部分のテストの実行が出来ず、その原因がDocker Image にあるのではないかという推測に至りました。チュートリアルに既に組み込まれていたグーグルコンテナレジストリのDocker Imageにはアクセスできなくなっていました。なので今回は、國分さんと二人でDockerインストールから四苦八苦しながらDocker イメージのアップロードをしました。使用OSはLinuxです。

Docker🐋は様々なOSに対応していますが、なぜかWindows 10 Homeには対応しておらず、自身のPCにインストールができませんでした。そのため、GCPのVM上でインストールしたのですが後々デフォルトで入っている事が判明。先に確認すれば良かったです・・・

インストール後はbuild, tag, pushの3つのステップでコンテナレジストリにアップロードします。VMを使っている場合は、先に"Dockerfile"のファイルを入れるのを忘れないようにしてください。

Build

$ docker build -t gcr.io/プロジェクト名/タイトル:latest .
権限がありません、と表示される場合はsudoを頭に付ければ大丈夫だと思います。(Linux)

Tag
$ docker tag イメージID gcr.io/プロジェクト名/タイトル
タイトルの後に何も付けない場合はデフォルトでlatestになります。タグは付ける様に推奨されているだけなので、この手順をスキップしても問題はありません。

Push
$ gcloud docker -- push gcr.io/プロジェクト名/タイトル
実際にレジストリにイメージをアップロードするコマンドです。上手く行ったかわからない場合はレジストリ(gcr.io/プロジェクト名)に直接アクセスして確認するのが良いかもしれないです。私はここでUnexpected EOF(End of File)という謎なエラーにあたりました。色々と検索してみましたが原因は今もわからずじまいです。

代わりに使ったもの
上記で使ったVMが原因不明のエラーに直面したため、代わりにCloud Shellを使うことを教えていただきました。GCPのコンソール画面右上にクラウドシェルボタンがあります。これを使用すると5分もしないうちにエラーも出ずアップロードが出来ました。


--------------------------------------


こういう作業、楽しくなってきました。

このブログの人気の投稿

【AWS】IAMFullAccessを付与せずIAM Roleの作成とアタッチを行う方法

【AWS】EBSボリューム自動取得/削除 を Lambda で実行 (世代管理も)

【GCP】Compute EngineでVPNサーバーを立てるときの注意点