Docker キャプテンは、その分野の専門家であり、Docker の知識を他の人と共有することに情熱を注いでいるコミュニティの選ばれたメンバーです。 「Docker Captains Take 5」は定期的なブログシリーズで、キャプテンを詳しく見て、Dockerの最高のヒントから猫と犬のどちらが好きか(個人的にはク ジラ と カメ が好きです)まで、同じ幅広い質問をします。 今日は、最近キャプテンズプログラムに参加したジェームズスプリンにインタビューしています。 彼はDiveIntoのDevOpsコンサルタント兼コース/コンテンツクリエーターであり、英国のハートフォードシャーを拠点としています。 LinkedIn と Twitterでジェームズのソーシャルをチェックしてください!
Dockerを最初に知ったのはいつ/どのようにですか?
私は初期のISP世代の一員であるため、私の初期のキャリアは、1998年から2000年に英国で最初のインターネットプロバイダーの1つであるデーモンインターネットで働くことでした。
当時、Web/DNS/電子メールやその他のサービスなど、独自の管理下システム(通常は自宅の食器棚に隠され、ケーブルモデムを介して世界中に提供される)で個人のISPサービスをホストして提供することはクールでした。
時代が変わり、重要なサービスとホスティングのためのより適切なクラウドベースのソリューションに移行しましたが、私は常にシステム管理とのコスプレに情熱を注いできました。 同じ情熱を持つ友人が私に linuxserver.io 勧めました。 これは、一般的なDockerイメージのフリートを管理および維持する優れたリソースです。
手動で実行していたサービスの多くを、独自の Docker イメージを作成する方法を学ぶための参照として、イメージまたは Dockerfile を使用して Docker に移行しました。
Dockerを使い始めるための優れた方法を探している場合は、linuxserver.io で利用可能なリソースを確認することを強くお勧めします。
ISPのキャリアの初期に、新しいスターターと共有するアドバイスは、ボックスでISPを作成して自己ホストすることでした。
本質的には、Webサーバー(当時はApacheを使用)、電子メール(Eximを使用)、DNSサーバー(バインドを使用)をカスタムドメイン名と組み合わせて、インターネット上で利用できるようにします。 これらのプロトコルがどのように機能するかを理解するための素晴らしい学習機会を提供しました。
今日、私のアドバイスはこれを試すことですが、Dockerもミックスしています!
お気に入りのDockerコマンドは何ですか?
私のお気に入りのドッカーコマンドは docker buildx
. アームアーキテクチャの成長に伴い、 docker buildx
私が非常に依存している優れたリソースです。 コンテンツクリエーターである私は、Dockerを幅広く活用して、誰もが自分のリソースで利用できるラボ環境を作成しています。 私の "Dive Into Ansible"リポジトリ を見て、docker-composeを利用し、250k以上のプルがあった例を見てください。
ほんの数年前、AMD64と一緒にarmの画像を構築することは、私の地域ではニッチと見なされていた可能性があります。 私の生徒のごく一部だけがパーソナルコンピューティングにRaspberryPiを使用していました。
ただし、最近では、特にAppleSiliconの成長に伴い、コミュニティコンテナイメージを提供する場合、クロスビルドイメージがはるかに必要になっています。 その結果、Buildxは私のお気に入りのCLIプラグインの1つであり、Dockerプロジェクトを成功させるためのマイルストーンとして不可欠であると考えるステップです。
他の人が知らないかもしれないDockerを操作するための一番のヒントは何ですか?
Dockerfiles (または自動イメージビルド) とガイド付きの指示を、1日目からのプロジェクトの標準部分として検討してください。 あなたのユーザーはあなたに感謝し、オープンソースの貢献者の可能性は高まります。
たとえば、Pythonプログラミング言語を考えてみましょう。 GitHub/Gitlab for Python プロジェクトを参照すると、プロジェクトに関連する依存関係を含む requirements.txt ファイルが表示されるのが一般的です。
その場合、コンシューマーはpipを介して依存関係をインストールすることが期待されます。 経験豊富な開発者は仮想環境を利用できますが、経験の浅い開発者はこれを実行中のシステムに直接インストールできます(したがって、相互汚染の可能性があります)。
Python 3+は最も一般的なPythonプロジェクトの標準ですが、ローカルにインストールされているPythonのバージョンとコードベース内で使用されるバージョンの間には微妙な違いがあるかもしれません。 また、一部の依存関係にはコンパイルが必要であり、特に開発者コンパイルツールのようなものが利用できない場合は、一般的な使用に別の障害があることも考慮する必要があります。
信頼できるPythonイメージを利用するDockerfileを提供し、GitHub / Gitlabと組み合わせてDockerHubなどを使用して自動化されたビルド済みイメージを提供することにより(自動ビルドをトリガーするため)、個人は数分で単一のコマンドとしてプロジェクトに参加して実行できます。 このような取り組みは、Kubernetes、CI/CD パイプライン、自動テストによる大きな再利用の機会も提供します。
あなたが行った/見た中で最もクールなDockerデモは何ですか?
KubeConバレンシアで行われたゆるいモビーの取り組み。 これがとても気に入ったので、当時これをキャプチャして ビデオを作成しました!
プロジェクトは斬新でした。結局のところ、誰がこれらのタイプのゲームを愛していませんか? イベントでの素晴らしいショーピースでした。 コンテンツクリエーターとして、また技術的な概念をデモンストレーションして教えるためのゲームの作成に取り組んできた者として、これを実現するためのグラフィック要素に関する努力にも非常に感謝しています。
Docker Desktop 拡張機能の動作を見て、私自身の Docker Desktop 拡張機能の旅とフォローアップに影響を与えました。 Kubeconから戻ったとき、 6つのノードとWebターミナルを備えたAnsibleベースのラボを即座に提供するDockerデスクトップ拡張機能を作成しました。 この拡張機能がどのように作成されたかについての関連ビデオをチェックしてください!
この半年間に取り組んだことで、特に誇りに思っていることは何ですか?
YouTube と Udemy で利用できる無料のKubernetes入門コースを作成しましたが、これは信じられないほどの視聴回数と肯定的なフィードバックを受けています。これは私にとって非常に個人的なプロジェクトであり、コミュニティのギブバックに焦点を当てていました。
私が最初にKubernetesを学び始めたとき、私がイライラした分野がありました。 この分野の学習リソースでは、多くの場合、コア Kubernetes アーキテクチャの理論的な概要が示されていますが、実践的なデモンストレーションが不足しています。 このコースは、誰もがKubernetesをよく理解し、重要なコンポーネントをわずか1時間で実践的に使用できるようにするために作成しました。
このコースはまた、Docker Inc.に関連する見落とされている分野についての視点を共有するユニークな機会を提供してくれました。 たとえば、Docker が Cloud Native に対して行った積極的な取り組みについて、それぞれ Cloud Native Computing Foundation と Open Container Initiative への containerd と runC の貢献について取り上げます。
Kubernetes、Docker、クラウドネイティブ、コンテンツ、コミュニティなど、私のお気に入りの情熱の多くを一度にカバーするプロジェクトに取り組むことができて光栄でした。
今年のDockerの最大の発表は何だと思いますか?
これについてはすでに上で述べましたが、私にとってはDockerデスクトップ拡張機能です。 Docker Desktop (現在は Windows、Mac、Linux のネイティブ) と併せて考えると、すべての主要な OS プラットフォームで一貫した開発リソースを提供できる一貫した Docker デスクトップ環境と拡張機能プラットフォームがあります。
Dockerコミュニティに関する来年の個人的な目標は何ですか?
私の目的はコミュニティに焦点を当てており、Kubernetesと組み合わせてDockerを重点化するコンテンツにすでに取り組んでいます(Docker Desktop Kubernetesのインストールでさらに多くのことを行う機会がたくさんあります)。 Docker Slackアナウンスチャンネルのタグラインが言うように...Docker, Docker, Docker!!
DockerCon 2022で気に入ったことは何ですか?
コミュニティ。 色々なトークやディスカッションを見ながら、チャットルームで活躍しました。
参加者の熱気は高く、当時お互いにおしゃべりをしていた人たちと素晴らしいつながりができました。
非常に予想外の瞬間もいくつかありました。 たとえば、Justin Cormack と Ajeet Singh Raina は、興味深いビンテージマイクを使用して、チャットルームやイベント後のディスカッションを開始しました。
遠い未来を見据えて、あなたが最も興奮し、多くの可能性を秘めていると思うテクノロジーは何ですか?
私の心を吹き飛ばした技術は、テキスト情報に基づいて画像を自動的に作成できるAIソリューションであるDall-E 2です。 これを聞いたことがない場合は、 このビデオをチェックする必要があります。
現時点では、 Dall-E Miniを試すことは可能です。 これはDall-E 2ほど強力ではありませんが、使用するのは楽しい場合があります。
たとえば、これは「Docker」の入力を使用してAIによって作成された一意の画像です。 この技術が既存のイメージを再利用しておらず、これを作るために「Docker」の概念を学んだことを考えると、それは本当に注目に値します。
急速な火の質問...
パンデミックの間にどのような新しいスキルを習得しましたか?
コーヒーは個人的な情熱であり、私が依存し、楽しんでいる燃料です! エアロプレスは、安価でシンプルで効果的なデバイスであり、多くの機会があります。 私は素晴らしいエアロプレスコーヒーを作る方法を探求しました、そして私はそれを釘付けにしたと思います! 興味のある方は、エアロプレスバリスタチャンピオンシップのフィードをご覧ください。
猫か犬か?
猫。 私には2つあり、1つはウィスパーベネディクト、もう1つはフローレンスローシンという名前です。 ウィスパーはブリティッシュブルーで、フローはブリティッシュブルーとホワイトです。 当時、私たちは猫を1匹だけ飼うつもりでしたが、食堂の女性が割引価格でフローを提供してくれて、抵抗できませんでした。
食堂の女性はブリティッシュブルースとブリティッシュホワイトのブリーダーであり、ブルースのお父さんはホワイトのお母さんと一緒に忍び込んでいました。悲しいかな、あなたは何が起こったのか推測することができます。 これはFloに彼女の非常にユニークなまだらの色を与えます。
二人は並外れたキャラクターです。 ウィスパーは2人の腕力であり、アルファ猫であると見なされますが、彼は絶対的なソフトであり、誰かが彼を拾うことを気にしません。
一方、フローが体格に欠けているものは、頭脳と敏捷性で補います。
私の子供たちのリリー(11)とアンウェン(4)の両方がフローを保持することができ、何も起こりません。 彼らは皆一緒に成長しました、そしてそれはまるで彼女が彼らが子供であることを知っているかのようです。 しかし、大人として彼女を迎えに行こうとしても、無傷で逃げることはできません。 フローはまた、キャリーバスケットが見えなくても、いつ彼女を獣医に連れて行くつもりかを知るこの不思議な能力を持っているようです!
彼らの特徴にもかかわらず、私たちは他の方法で毛皮で覆われた家族を持っていません。
塩辛い、酸っぱい、または甘い?
甘い!
ビーチか山か?
ビーチ(スキアトス島にいくらかのお気に入りがあります)お願いします!