Dockerはオープンソースで開発されている、コンテナプラットフォームアプリケーションです。 Docker Desktopは条件付きで無償で利用できますが、OSS版Docker(Moby)は特に条件なく、引き続き無償で利用できます。
さて、初めて使うアプリケーションや自分で作成したコードをサクッと動かすことができて便利なDockerですが、Dockerを使うのははじめてという方も日本の場合はまだまだ多いかもしれません。
そんな方向けに役立つ、いくつかの公式ドキュメントをご紹介します。
おすすめのガイド
「Sample」には、チュートリアルやDockerでアプリケーションを実行するサンプルが公開されています。このコンテンツの一つの「Docker for Beginners」は、まだDockerに慣れていないユーザーが最初に見るドキュメントとして適切です。
Dockerの仕組みについて知りたい場合は「Docker overview」を見ると良いと思います。
Dockerをつかったプログラミング言語別の開発については「Language-specific guides」が参考になります。すべての言語が網羅されているわけではありませんが、一例としてNode.js、Python、Java、Golangについてのノウハウがガイドとして用意されています。
言語別のノウハウを習得したあとは「Develop with Docker」を見ておくと良いかなと思います。Docker を使用して新しいアプリケーションを構築したいアプリケーション開発者向けの情報がリンクされています。
- 特に「Docker development best practices」は最低限見ておくべきでしょう。
- 独自イメージの作成を始める前には、「Best practices for writing Dockerfiles」を見ると良いです。イメージ作成の基本やノウハウが詰まっています。
- イメージ作成する場合はUse multi-stage buildsもご覧ください。最近ARM64アーキテクチャーベースのマシン(ラズパイを中心とした各社ArmボードやApple SiliconベースのMacとか)増えてきたので、こういったハードウェア上でもコンテナーを動かしたい場合、イメージのビルドには工夫が必要なためです。
アプリケーション開発がある程度終わり、本番環境でアプリケーションを実行するフェースになった場合のノウハウについてはRun your app in production > Orchestration というガイドが用意されています。「Kubernetes」や「Docker swarm」といったコンテナプラットフォームで開発して「Docker」で動かせたアプリケーションをこれらのようなクラスターで実行するためのノウハウが詰まっています。お手元のMacやWindowsで試す方法なども書かれています。
概要ではなくそれぞれのコンポーネントについて詳しく知りたい場合は「Reference documentation」を見ると良いでしょう。
今回触れなかったドキュメントを含めてDocker Docsからたどることができますので、色々ご覧ください。Dockerのドキュメントは基本英語ですが、ブラウザーの翻訳機能などを使えばおおよそ理解できると思います。
これらのガイドには「なるほど!」と思うようなドキュメントが多数用意されています(Dockerは製品がOSSで開発されているだけでなく、Dockerを利用したノウハウも包み隠さず提供してくれているので、個人的に好きなプロジェクトです)。Dockerをただ道具として見るだけでなく、Dockerが道具から相棒へ切り替わるきっかけになるかもしれません。
非公式ではありますが、Docker ドキュメント日本語化プロジェクトが日本語版のDockerのドキュメントを翻訳してくださっています。