Red Hat Summit ウィークであり、これを機会に Docker と Red Hat のパートナーシップのいくつかの側面を強調したいと考えました。 この投稿では、Docker DesktopとRed Hat OpenShiftに焦点を当てます。 別の投稿では、 Docker HubでのRed Hatのユニバーサルベースイメージのプルが前年比で160%増加したことについて話します。
なぜ Docker Desktop + Red Hat OpenShift なのか?
Docker Desktop + Red Hat OpenShift を使用すると、Red Hat OpenShift に依存する 何千もの企業が 、2,000 万人以上のアクティブな開発者がすでに知っていて信頼している Docker Desktop プラットフォームを活用して、日々の摩擦を排除し、結果を出すことができます。

それが解決する問題
スプリントのデモに比べてコーディングが簡単で、全員の承認を得て前進できるように感じる場合があります。 Docker Desktop は、Mac および Windows ローカル環境でのコンテナ化されたアプリケーションの開発、使用、テストを容易にするためにヤクシェービングを行い、Docker Desktop 用の Red Hat OpenShift 拡張機能は、ワンクリックで Red Hat のクラウドコンテナプラットフォームにプッシュします。
Docker Desktop 用の Red Hat OpenShift 拡張機能の特に便利な使用法の 1 つは、作業の迅速なプレビューや共有であり、アクセスのしやすさと CI を待たずにスムーズにデプロイすることで、開発プロセスの早い段階でサイクルタイムを短縮し、完全な CI と本番デプロイメントに至るまでの迅速なイテレーションが可能になります。
はじめ
Docker デスクトップをまだインストールしていない場合は、 Docker の使用開始に関するガイドを参照してください。
拡張機能のインストール
Red Hat OpenShift 拡張機能は、 Docker Extensions Marketplace にある多くの拡張機能の 1 つです。[ インストール ] を選択して拡張機能をインストールします。

👋 プロのヒント: マーケットプレイスにない拡張機能のアイデアがありますか? 自分で構築 して、 それについてお知らせください! または、それについて教えてくれず、内部使用のみのために保管してください—会社またはチーム固有のワークフロー用のプライベートプラグインも重要です。
拡張機能で OpenShift クラスターにサインインする
Red Hat OpenShift クラスター Web コンソール内で、ユーザーメニューから copy login コマンド を選択します。
![- F3 ログインメニュー Red Hat OpenShift クラスター Web コンソールのスクリーンショット (ユーザー メニューで [copy login command] を選択)](https://www.docker.com/ja-jp/app/uploads/2023/06/F3-login-menu-1110x436.png)
👋 OpenShift クラスタをお持ちではありませんか? Red Hat は、クラスターへの即時アクセスやガイド付きチュートリアルなどを提供する開発者サンドボックスプログラムにより、OpenShift の探索と開発をサポートしています。 サインアップするには、 開発者サンドボックス ポータルにアクセスします。
これにより、Red Hat OpenShift 拡張機能などで使用できる Kubernetes コンテキスト を取得するために使用できる詳細が記載されたページが表示されます。

そこから、Docker Desktop の Red Hat OpenShift 拡張機能に戻ることができます。 [OpenShift へのデプロイ] 画面では、Kubernetes コンテキストを変更またはログインできます。ログイン画面で、前のトークンとサーバーURLを含む行全体を oc login
貼り付けます。

最初のデプロイ
拡張機能の使用は、インストールするよりもさらに簡単です。必要なのはコンテナ化されたアプリだけです。 サンプルのレーシングゲームアプリは 、 Dockerfile(ドキュメント)と OpenShift マニフェスト ( ドキュメント ) を使用する準備ができており、プレイするのは楽しいことです。
開始するには、 https://github.com/container-demo/HexGL クローンを作成します。
👋 上級者向けのヒント: コンテナー化したいアプリはありますか? Docker に 新しく導入された docker init コマンドは 、Dockerfile、マニフェストの作成、および .dockerignore
ファイル。
イメージをビルドする
サンプルのレーシングゲームアプリのローカルクローンを使用して、コマンドラインのリポジトリに入力し、cd
そこでイメージをビルドします。
docker build --platform linux/amd64 -t sample-racing-game .
このフラグは --platform linux/amd64
、Apple Silicon/ARM CPU を搭載した Mac からビルドしている場合でも、x86 互換イメージを強制します。 -t sample-racing-game
SHA256よりも認識しやすいもので画像に名前を付けてタグ付けします。最後に、末尾のドット (".") は、現在のディレクトリからビルドするように Docker に指示します。
Docker バージョン 23 以降では、 docker build
BuildKit を活用して、パフォーマンスの向上、キャッシュの向上、 シークレットの構築 などのサポートにより、開発者としての生活をより簡単かつ安全にしています。
イメージをローカルでテストする
イメージをビルドしたので、ローカルでテストできます。 以下を使用してイメージを実行するだけです。
docker run -d -p 8080:8080 sample-racing-game
そして、ブラウザを開いて http://localhost:8080/ 結果を確認します。
OpenShift へのデプロイ
イメージがビルドされたら、クラスターでテストします。 最初にレジストリにプッシュする必要さえありません。
Docker Desktop の Red Hat OpenShift 拡張機能にアクセスし、新しいサンプルレーシングゲームイメージを選択して、アクションボタンのプルダウンから [OpenShift にプッシュしてデプロイ ] を選択します。

[OpenShift にプッシュしてデプロイ] アクションは、最初に別のレジストリにプッシュすることなく、イメージを OpenShift クラスターの内部プライベート レジストリにプッシュします。これはプライベート レジストリの代わりにはなりませんが、反復ビルドを保持する予定がない反復開発には便利です。
ボタンをクリックすると、拡張機能は意図したとおりに実行し、進行状況について最新の状態に保ちます。

最後に、拡張機能はアプリのURLを表示し、デフォルトのブラウザを開いてそれを披露しようとします。

クリーンアップ
アプリを使い終わったら、または再デプロイを試みる前に、Web ターミナルを使用して、このワンライナーを使用してデプロイのすべてのトレースを行います。
oc get all -oname | grep sample-racing-game | xargs oc delete

これにより、後で同じ名前空間に再デプロイしようとした場合に、リソースやエラーを不必要に使用するのを回避できます。
だから。。。わかったこと
Red Hat OpenShift 拡張機能を使用すると、Docker Desktop から OpenShift クラスターにワンクリックでデプロイできます。 イテレーションを加速する方法として、スプリントのデモと承認のために共有クラスターで反復作業をプレビューする場合に特に便利です。
上記の手順では、拡張機能のインストールと構成、イメージのビルド、最小限のクリックでクラスターへのデプロイを行う方法を示しました。 次に Docker と Red Hat で何を構築するか、 Twitter でタグ付け@docker 、または私が @misterbisson@techub.social で共有するために何を構築するかを教えてください。