1. ホーム
  2. docker

minikubeのdocker-envとはどういう意味ですか?

2023-09-05 10:16:38

質問

Kubernetesで minikubeチュートリアル には、Minikube Docker daemonを使用するためのコマンドがあります。

$ eval $(minikube docker-env)

このコマンドは具体的に何をするのか、つまり minikube docker-env は何を意味するのでしょうか?

どのように解決するのですか?

コマンド minikube docker-env は、Minikubeインスタンス内のDockerデーモンを再利用するためにローカル環境を設定するためのBash環境変数エクスポートのセットを返します。

この出力を eval を通して渡すと、bashがこれらのエクスポートを評価し、実行に移します。

評価ステップを省略して、シェルで実行される特定のコマンドを確認することができます。 minikube docker-env を直接実行することで、実行される特定のコマンドを確認することができます。しかし を実行することはできません。 - を実行しないので、出力はそのために評価される必要があります。


これは、minikube環境内で実行可能なDockerイメージの構築と実行の経験を向上させることを目的としたワークフローの最適化です。minikubeを効果的に使用するためにminikubeのDockerデーモンを再利用することは必須ではありませんが、そうすることでコードビルド-テストサイクルの速度を大幅に向上させることができます。

通常のワークフローでは、ホストマシン上にminikubeとは別のDockerレジストリがあるため、minikube内でDockerイメージを構築・実行するためには以下のようなプロセスが必要になります。

  1. ホストマシン上でDockerイメージをビルドします。
  2. ビルドしたイメージをローカルマシンのイメージレジストリで、リモートレジストリまたはminikubeインスタンスのイメージレジストリで再タグ付けします。
  3. リモートレジストリまたはminikubeにイメージをプッシュします。
  4. (リモートレジストリを使用する場合) レジストリから画像を引き出すために、適切なパーミッションでminikubeを設定します。
  5. イメージを使用するようにminikubeでデプロイメントを設定します。

Minikube内のDockerレジストリを再利用することで、こうなります。

  1. MinikubeのDockerインスタンスを使用してDockerイメージをビルドします。これにより、イメージがMinikubeのDockerレジストリにプッシュされます。
  2. イメージを使用するようにminikubeでデプロイメントを設定します。

目的の詳細については minikubeドキュメント .