今日は、SynologyNASでDockerを使用する方法を見ていきます。
説明の大部分は上のビデオで行われます 、ただし、特定のポイントを文書化することが重要です。 Synology NASでのDockerの実装は、理解すると非常に強力ですが、最初に始めたときには少し混乱します。特定のコンテナの実装をガイドする特定のチュートリアルを作成しますが、私の目標は、必要なコンテナを実装するために必要な知識を提供することです。
1。ボリュームマウント– SynologyNASDockerの使用方法
Dockerコンテナーを作成するときは、重要なデータをローカルフォルダーにマップする必要があります。これはボリュームで完了します セクション。ローカルフォルダーはコンテナーフォルダーにマップされます。コンテナが実行されると、以下のマウントパス内のコンテナのフォルダの場所が、SynologyNASに入力されたファイル/フォルダに書き込まれます。ローカルのSynologyNASフォルダーで変更されたデータはすべて、コンテナーフォルダーに書き込まれます。
必要なフォルダをマウントできないことを強調することが重要です。レジストリからイメージをダウンロードすると、小さなアイコン(以下に表示)がそのコンテナのドキュメントに移動します。そのドキュメントを検索して、マウントできるフォルダを確認できます。
ドキュメントに移動した後、ページを検索して、マウントできるボリュームを確認する必要があります。残念ながら、すべてのドキュメントが異なるため、ボリューム情報を見つけるためにドキュメントを検索する必要があります。例としてPi-Holeを使用して、DockerComposeファイルの例を示します。 ボリュームの下 セクションでは、マウントできる2つのボリュームを見つけることができます。
./ etc-pihole /:/ etc /pihole/を使用する 例として、 etc-pihole ローカルフォルダであり、 / etc / pihole コンテナのフォルダです。 docker にサブフォルダーを作成することで、これをSynologyNASに簡単に変換できます。 フォルダを作成し、そのフォルダの場所をコンテナのフォルダにマウントします。以下のスクリーンショットを使用して、 pi-holeという名前のフォルダーを作成しました。 およびサブフォルダ名etc-pihole 。これらのフォルダーはdockerフォルダー内にあり、コンテナーの / etc / piholeにマウントされます。 フォルダ。コンテナが起動すると、コンテナの / etc / piholeの内容 フォルダはSynologyNASのetc-piholeに書き込まれます フォルダ。 コンテナのバックアップに関心がある場合は、コンテナごとにマウントするフォルダにすべての個人データが保持されます。これらは、バックアップする必要のある重要なフォルダです。残りは、別のNASまたはDockerインストールで作成できる構成です。
この次の部分は少し注意が必要です。コンテナ上の特定のファイルのローカルバージョンを作成し、そのファイルがコンテナ上に存在する正確なパスを選択することで、そのファイルを上書きできます。その一例がresolv.confです。 下のスクリーンショットのファイル。コンテナが実行されると、コンテナ上のresolv.confファイル SynologyNAS上のresolv.confファイルの内容に置き換えられます 。繰り返しになりますが、コンテナ上のファイルを更新する場合は、Synology NASでローカルファイルを作成し、そのファイルをコンテナの内部ファイルにマッピングします。
2。 Macvlan&Bridgeネットワークインターフェース
Dockerコンテナが特定のポート(たとえば80/443)を使用し、ホストネットワークインターフェイスがすでにそれらのポートを別の目的で使用している場合があります。これが発生すると、ポートの競合により、コンテナが正しく機能しなくなります。このような状況では、問題を解決する主な方法が2つあります。
- 別のものを使用するようにローカルポートを変更します。たとえば、Dockerコンテナがポート80を使用する場合は、ローカルポートを変更します。 以下に示すように、8080のように別のものになります。 Dockerコンテナにアクセスするには、Synology NASのIPアドレスとローカルポート(http:// [SYNOLOGY_NAS_IP]:8080)を使用します。
2.macvlanネットワークインターフェイスとブリッジネットワークを作成します。作成するコンテナが使用する一意のIPアドレスを指定するため、macvlanネットワークインターフェースはすべてのポートの競合を回避します。これは、SynologyNASとはまったく異なるIPアドレスを使用してそのコンテナにアクセスすることを意味します。デフォルトでは、ホスト(Synology NAS)はコンテナと通信できません。このため、ホスト(Synology NAS)とコンテナが通信できるようにブリッジネットワークが必要です。明確にするために、Synology NASがコンテナと通信する必要がある場合は、macvlanIPアドレスではなくブリッジネットワークIPアドレスを使用します。
2.1 Macvlan&Bridgeネットワークインターフェースの作成方法
1. SSH お気に入りのSSHツールを使用してSynologyNASに接続します。
2.まず、(Synology NASに)現在存在するネットワークインターフェイスを特定し、アダプター名を書き留める必要があります。これを行うには、以下のコマンドを実行し、Synology NASのIPアドレスを持つネットワークインターフェース名を書き留めます(この例では、私のものはeth0です)。
ifconfig
3.次に、正しいサブネットを置き換えながら、以下のコマンドを実行する必要があります(ほとんどはデフォルトで192.168.1.0/24です)。また、現在使用されていない、使用するIPアドレスを選択する必要があります。 192.168.1.198を使用します。 注 :ph_networkはネットワークの名前になります(必要に応じてこれに置き換えることができます)。
sudo docker network create -d macvlan -o parent=eth0 --subnet=192.168.1.0/24 --gateway=192.168.1.1 --ip-range=192.168.1.198/32 ph_network
これでネットワークが作成されました。その後、SSHセッションを終了し、DSMで無効にすることができます(使用しない場合)。無効にしてファイアウォールルールを作成した場合は、ファイアウォールルールも無効にする必要があります。
4.次に、ブリッジネットワークを作成する必要があります。これにより、ホスト(NAS)がコンテナーと通信できるようになります。 Dockerを開きます ネットワークに移動します セクション。 [追加]を選択して、現在使用されていないサブネットを入力します。作成しているブリッジのIPアドレスは192.168.10.2になります。 注: ph_bridgeがネットワークの名前になります。これを、任意の名前に置き換えることができます。
7.これで新しいネットワークが作成されました。その後、SSHセッションを終了し、DSMで無効にすることができます(使用しない場合)。無効にしてファイアウォールルールを作成した場合は、ファイアウォールルールも無効にする必要があります。
8.コンテナを作成するときは、ブリッジネットワークを削除します 2つのネットワーク(ph_networkとph_bridgeですが、名前が異なる場合があります)をコンテナに追加します。
これで、コンテナは正しいネットワークを使用します。発生する可能性のあるポートの競合を回避し、コンテナの一意のIPアドレスを持ち、ブリッジネットワークを使用してホスト(Synology NAS)とコンテナの間で通信できるようになります!
3。環境変数
デフォルトでは、多くのDockerコンテナーには、コンテナーの設定を変更するために変更できる環境変数があります。コンテナ間で標準の環境変数はありません。変数名を共有するものもありますが、ドキュメントを表示して、使用する環境変数を決定することを常にお勧めします。コンテナには特定の変数が標準で付属していますが、コンテナを作成する前に、それらを変更したり、新しい変数を追加したりすることができます。
これは、ドキュメントにリストされているPi-Hole環境変数の詳細の例です。
Synology NASのDockerコンテナで、環境 セクションでは、環境変数を追加、削除、または変更できます。
4。コマンドラインインターフェイス(CLI)を介してコンテナにアクセスする方法
コンテナのファイルにアクセスする必要がある、またはアクセスしたい特定の状況があります。 (ファイルボリュームをマウントすることによって)何かを変更する必要がある場合でも、構造を表示する必要がある場合でも、Synology NASでそれを行う方法がありますが、SSHを介して行う必要があります。
1. コンテナを起動します! コンテナが起動されていない場合、コンテナにアクセスできません!
2.SynologyNASにSSHで接続できることを確認します。 コントロールパネルを開きます 、端末とSNMPを選択します 、および SSHを有効にします サービス。Synologyのファイアウォールを使用している場合は、ポート22のトラフィックを許可していることを確認してください 。問題が発生した場合にSynologyNASにSSHで接続する方法に関するビデオを作成しました。
3.以下のコマンドを実行して、実行中のコンテナーをリストします。 コンテナIDをコピーします。
sudo docker container ls
4.以下のコマンドを実行し、コンテナIDに置き換えます 上にあります。
sudo docker exec -it CONTAINER_ID bash
5.これで、コンテナのrootユーザーとして接続されます!
5。 Docker Compose – Synology NAS
一部の人にとっては驚きかもしれませんが、DockerがSynologyNASにインストールされるとすぐにDockerComposeを使用できます。知らない人のために、Docker Composeを使用すると、1つのコマンドでYAML構成ファイルからコンテナーを作成できます。すべてがコマンドラインインターフェイス(CLI)を介して実行され、一部のユーザーはそれが簡単だと感じています。 これを使用する場合は、DockerComposeが少し古いバージョンであるため更新することをお勧めします。
SynologyNASでのDockerComposeのいくつかの利点:
- すべてがコマンドラインインターフェイス(CLI)を介して管理されます。 CLIに慣れている場合は、SynologyのGUIでコンテナを手動で構成するよりもはるかに簡単であることがわかります。
- Docker Composeはシステムに依存しません。つまり、構成ファイルとデータフォルダーは、Docker Composeを実行している他のシステムに転送でき、期待どおりに機能します。これは、重要なコンテナデータをバックアップできるため、SynologyのDocker GUIとは大きく異なりますが、別のオペレーティングシステムに簡単に移植することはできません。
SynologyNASでのDockerComposeのいくつかの欠点:
- すべてはコマンドラインインターフェイス(CLI)を介して行われます。 CLIに慣れていない場合は、GUIですべてを管理する方がおそらく簡単です。
- Docker Composeファイルにはすべての構成が含まれているため、このファイルが完全にセットアップされていることを確認する必要があります。そうしないと、コンテナーを定期的に削除/再作成して、すべてが期待どおりに機能することをテストおよび確認します。
5.1DockerComposeを使用してコンテナを作成する方法
1. docker-compose.yamlを移動します 作成するコンテナのフォルダに作成したファイル。
2.SynologyNASにSSHで接続できることを確認します。 コントロールパネルを開きます 、端末とSNMPを選択します 、および SSHを有効にします サービス。Synologyのファイアウォールを使用している場合は、ポート22のトラフィックを許可していることを確認してください 。問題が発生した場合にSynologyNASにSSHで接続する方法に関するビデオを作成しました。
3.ドッカーに移動します Synology NAS上のフォルダの場所と、作成するコンテナのサブフォルダ。ほとんどの場合、フォルダはvolume1に保存されますが、複数のボリュームを使用している場合は、別のボリュームになる可能性があります。
cd /volume1/docker/[conatiner_folder]
4. docker-compose.yamlを確認した後 ファイルは現在のフォルダーにあります。以下のコマンドを実行してコンテナーを作成します。コンテナが起動します!
sudo docker-compose up --detach
6。結論–SynologyNASでDockerを使用する方法
SynologyNASで作成できるさまざまなDockerコンテナがたくさんあります。提供されたビデオですべてがわかりやすく説明されていることを願っていますが、必要なコンテナをインストールできるように、DockerGUIがどのように機能するかを強調することが重要です。プロセスはすべてのコンテナで同じであり、SynologyNASでDockerを使用する方法を示してくれることを願っています。
いつものように、質問があればコメントに残してください!

Portainer –Dockerを管理する最も簡単な方法

Dockerイメージとコンテナーはホストのどこに保存されますか?

Nginx Proxy Manager Synology NASのセットアップ手順!