Docker とは#
Docker は、世界中の開発者からのプリメイドの料理を集めた食堂のようなものです。実行したいプログラムに応じて、適切なプリメイドの料理を選択するだけで簡単に実行できます。
これらのプリメイドの料理には、ソフトウェアライブラリ、ツール、設定など、プログラムの実行に必要なすべてが含まれています。Docker は、電子レンジのようなもので、プリメイドの料理を入れて加熱するだけで簡単にプログラムを実行できます。
オープンソースのソフトウェアや他の複雑なプログラムでも、Docker を使用することで煩雑な設定や環境構築の心配をせずに一度に起動できます。
Docker のインストール#
Docker にはデスクトップクライアントがあり、比較的簡単にインストールできます。Windows システムでは Hyper-V を有効にする必要があります。次に進んで完了までクリックしてください。エラーが表示されない場合は、インストールが成功しています。
インストールプロセスで奇妙な問題が発生した場合は、インストールされている Windows のコピーが不正なコピーであるか、システムが改ざんされている可能性があることを考慮する必要があります。
Docker の利用#
Docker は、巨大なソフトウェアリポジトリのようなもので、さまざまなプリメイドのソフトウェアパッケージが格納されています。これは、WeChat の小プログラムのように、ダウンロードして実行するだけで使用できます。
私自身、Docker を使用しているアプリケーションは 3 つあります。Memos、Lobehub、および Planka です。
Lobehub は、私が使用した中で最も優れた AI 統合ツールの一つです。Vercel デプロイをサポートしています。ローカルに Ollma をインストールしている場合、Docker 版の Lobe-Chat をインストールすることは自然なことです。
Memos は、軽量のノートサービスであり、Flomo のように素晴らしいアイデアを簡単にキャプチャして共有することができます。オフラインの友達リストのように使用できます。
いくつかの散文的なテキストは Memos に記録され、記事になるときには Obsidian に移動して統合的な作成ができます。
この Trello のオープンソース版のボードツールPlankaは、個人やチームのプロジェクト管理ニーズを満たすことを目指しています。ボード、リスト、カードなど、Trello と同様の機能を備えていますが、自己ホスト型ですので、データとプライバシーを完全に制御できます。
Docker の小技#
私は Docker デスクトップクライアントを使いこなす必要はありません。通常、コンテナが起動しているかどうかを確認するだけです。
ほとんどの操作はコマンドを使用しますが、実際の作業では 5 つ以上のコマンドを使用しません。
削除、プルなどの操作にはクライアントを使用してみましたが、使えるけど使いづらく、さまざまな小さな問題が発生しやすいです。
私は個人的に最適な方法を考えています:いくつかの一般的なコマンドとクライアントの視覚化を組み合わせることです。
Docker プロジェクトのプルと起動
lobehub を例にとって、開発者の GitHub プロジェクトで Docker のインストールリンクを見つけます。
最初のコマンド、イメージのプル👇
Docker pull lobehub/lobe-chat
CMD を開き、リンクアドレスをコピーして貼り付け、Enter キーを押します。
プロジェクトがインストールされたら、起動する必要があります。つまり、「イメージのダウンロード→コンテナの起動」です。車は動くためには起動する必要がありますが、道路に出したくない場合は起動しないでください。
2 番目のコマンド、コンテナの起動👇
Docker run -d -p 3210:3210 lobehub/lobe-chat
Docker の利点は、幸運な値を向上させることです。一般の人々にとって、Docker はさまざまなシステム環境と設定のニーズを低減してくれます。
通常、2 つのコマンドでプロジェクトのプルと起動が完了します。
この時点で、Docker デスクトップクライアントを開き、コンテナが正常に起動しているかどうかを確認し、リンクをクリックして使用できます🎉
Memos をオフラインで使用してフラッシュアイデアを記録し、LobeHut + Ollama で大規模モデルを使用してテキスト生成と翻訳を行い、Planka で計画を整理します。
ローカルポートをパブリックネットワークにマッピングし、ローカルネットワークトラバーサル技術を使用することで、Docker プロジェクトにどこからでも(家、携帯電話、他のコンピュータ)アクセスできます。
オフィス以外の場所から Docker プロジェクトにアクセスする場合は、ローカルネットワークトラバーサルを使用する必要があり、オフィスのコンピュータを常にオンにする必要があります。
私はローカルで Docker を使用することに慣れていますが、外部からアクセスする必要がある場合は、Vercel や他の無料のクラウドデプロイメントソリューションを使用します。
Docker プロジェクトの更新とアンインストール
Docker の主な利点は、無料、オフライン、セキュリティです。ただし、プロジェクトの更新やデータの移行などの問題もあります。
たとえば、プロジェクトの上流で更新がある場合、Docker はどのように同期しますか?コンピュータを交換する必要がある場合、ローカルにプロジェクトデータがある場合、別のコンピュータに移行する方法はありますか?プロジェクトをクリーンにアンインストールする方法はありますか?
プロジェクトの上流で更新がある場合、通常、プロジェクトアプリ内でプロンプトが表示されます。まず、コンテナを停止して削除し、次にイメージをローカルにプルして上流の更新をデプロイし、コンテナを再起動します。
コンテナを停止して削除するには、Docker クライアントで操作するか、コマンドを使用することができます。コマンドを使用する場合は、コンテナの名前を知っている必要があります。
クライアントを使用してコンテナを停止および削除する場合は、シンプルで直感的で、アイコンを見ればわかります。
コマンドラインを使用してコンテナを停止および削除する場合は、まず使用可能なコンテナを確認し、コンテナの名前を確認してから停止および削除します。
Docker ps -a
コンテナを停止および削除するコマンドは、memos を例に示します。
Docker stop memos & Docker rm memos
クライアントとコマンドの両方を使用できますが、どちらか一方を選択してください。
同様に、プロジェクトイメージの更新方法は、デスクトップクライアントのボタンを使用するか、コマンドを使用することです。
コマンドを使用する場合は、先ほどのプルコマンドです。
クライアントを使用する場合は、そのイメージファイルの Pull をクリックします。
新しいバージョンをダウンロードした後、古いバージョンのイメージを削除できます(Docker イメージの Pull は新しいイメージを生成し、元のイメージを上書きしません)。
今、コンテナを再起動する必要があります。ただし、この操作はクライアントの方法ではなく、先ほどのコンテナ起動コマンドを使用してください。
これにより、プロジェクトが最新バージョンに更新され、上流と同期されます。通常、古いレコードは残りますが、更新前にデータをバックアップすることをお勧めします。たとえば、memos にはノートのエクスポート機能があります。
Docker コンテナを Docker と一緒に起動する
すべてが順調にいけば、既に楽しんでいることでしょう。
仕事を終えてシャットダウンし、翌日に再起動すると、一部のプログラムが実行できないことがわかります。これは、コンテナが Docker と一緒に起動していないためです。
この場合、手動で Docker クライアントを開き、コンテナを選択し、起動ボタンをクリックします。しかし、毎回手動で起動するのは面倒ですので、コンテナが Docker と一緒に起動するようにしたいです。
2 つのコマンドで簡単に設定できます。
まず、コンテナが起動時に自動的に起動するかどうかを確認する必要があります。それが「Always」であれば、そうでなければ「no」となります。memos を例に示します👇
Docker inspect -f "{{ .HostConfig.RestartPolicy.Name }}" memos
「no」であれば、次のコマンドを実行して自動起動を設定します。
Docker update --restart always memos
その後、前のコマンドを再実行して設定が成功したかどうかを確認します。「Always」が表示されれば、設定が成功しています。
Docker コマンドの拡張#
Docker の使用が深まるにつれて、混乱を招くことが増えてきます。これらのコマンドと操作を効果的に組織化できない場合、Docker の理解と使用が困難になる可能性があります。
私の個人的な対処方法は、コマンドをカテゴリごとに整理して保存することです。さて、Docker で構築した Planka が役立ちます。
Docker でプロジェクトを構築する場合、頻繁に使用するアプリケーションです。
さらに、不要なイメージとコンテナを定期的にクリーンアップすることは非常に重要です。イメージはコンテナの基礎となるものであり、コンテナは実行中のインスタンスです。使用していないイメージとコンテナが多すぎると、大量のストレージスペースを占有し、システムの速度が低下する可能性があります。
したがって、不要なプロジェクトを多くインストールしないようにし、コンピュータのパフォーマンスを無駄に消費しないようにしてください。