Alist の展開とローカルストレージのマウント

Alistは、マルチストレージ、Webブラウジング、WebDAVに対応したファイルリストプログラムです。ginとSolidjsを基盤とした、ネットワークディスク上のファイル管理のためのオープンソースプログラムです。Alistはローカルストレージだけでなく、Alibaba Cloud、Baidu Cloud、123などの様々なネットワークディスクもマウントできます。次に、dockerメソッドを使ってAlistをデプロイし、ローカルディレクトリをマウントします。

使用するバージョンはaria2をサポートするDockerバージョンです。URLはhttps://hub.docker.com/r/xhofe/alist-aria2です。

sudo docker run -d --restart=always -v /etc/alist:/opt/alist/data -p 5244:5244 -e PUID=0 -e PGID=0 -e UMASK=022 --name="alist" xhofe/alist-aria2:latest

自動的に完了します。

初めて使用する場合、デフォルトのパスワードを照会します。

sudo docker exec -it alist ./alist admin
Alist の展開とローカルストレージのマウント-1
表示されているとおりに返します

管理者アカウント(server ip:5244)でログインし、フッターの管理をクリックし、左側のストレージ、追加、ローカルストレージをクリックします。このうち、マウントパスはWebページに表示されるパスを指し、/はルートディレクトリに直接表示されます。ルートフォルダパスは、ファイルがサーバー上で実際に保存されている場所です。dockerメソッドを使用しているため、このパスは実際にはdocker内にあることに注意してください。サーバー上のこのファイルにアクセスするには、まずdockerと入力する必要があります。

1. alistコンテナのIDを取得する

sudo docker ps

2. コンテナのコマンドラインを入力する

sudo docker exec -it 7dfc82a85888 /bin/bash
Alist の展開とローカルストレージのマウント-2

この時点で、コンテナのルートディレクトリは「ルートフォルダパス」のルートディレクトリに対応します。例えば、コンテナのルートディレクトリに「alist」という新しいフォルダを作成し、その中にtest.txtファイルが含まれているとします。ルートフォルダパスを「/alist」、マウントパスを「/114514」と入力すると、サーバーIP:5244に次のようなメッセージが表示されます。

Alist の展開とローカルストレージのマウント-3

Dockerコンテナ内のファイルを管理する方法

Docker コンテナは仮想マシンに似ていますが、物理マシンとコンテナ内のシステム間でファイルを転送する場合は、いくつかの違いがあります。

コンテナシステム内のローカルファイルのみを管理したい場合は、 docker exec このタイプのコマンドはコンテナに直接入力され、通常のコマンドラインを使用して管理できます。

しかし、外部の物理マシンからコンテナにファイルをコピーしたり、コンテナからファイルをコピーしたりする必要性が突如として生じることはよくあります。Dockerの欠点は、コンテナを作成した後にパラメータを変更するのが面倒なことです。コンテナ作成時に、その後のニーズをすべて予測し、すべてのディレクトリを事前にマッピングすることは明らかに不可能です。

幸いなことに、Docker自体には対応するファイル転送コマンド、つまりcopy命令とadd命令が用意されています。これら2つの命令は使い方は似ていますが、いくつかの違いがあります。

コピーコマンドは、その名前が示す通り、コンテナと外部の物理マシン間でファイルをコピーするために使用できる基本的なコマンドです。コマンドの形式は、ターゲットに応じて複数の組み合わせが可能です。

docker cp コンテナIDまたは名前: コンテナディレクトリ 物理マシンディレクトリdocker cp 物理マシンディレクトリ コンテナIDまたは名前: コンテナディレクトリ

たとえば、コンテナー ID が b2860e937844 のミラーが作成されます。

Alist の展開とローカルストレージのマウント-1

たとえば、物理マシンの /home/lishuma ディレクトリをコンテナの /home ディレクトリにコピーする場合は、次のコマンドを実行します。

docker cp /home/lishuma b2860e937844:/home/

実行後、コンテナに入って対応するディレクトリを表示すると、対応するlishumaディレクトリが表示されます。

前のコマンドから末尾のスラッシュが削除された場合は、物理マシンの /home/lishuma ディレクトリをコンテナのルート ディレクトリにコピーし、コピーしたディレクトリの名前を home に変更することを意味します。

逆に、コンテナ b2860e937844 (test.zip ファイルを含む) の /home/lishuma ディレクトリを物理マシンの /home/lishuma/test ディレクトリにコピーする場合、コマンドの形式は次のようになります。

docker cp コンテナIDまたは名前: コンテナディレクトリ 物理マシンディレクトリ

走る:

docker cp b2860e937844:/home/lishuma /home/lishuma/test/

実行後、物理マシンの対応するディレクトリに必要なディレクトリが表示されることがわかります。

Alist の展開とローカルストレージのマウント-1コンテナファイルの外部コピー

上記のように、コンテナを外側にコピーするコマンドから最後のスラッシュを削除すると、コピー後にコマンドの名前が test に変更されることを意味します。

注記:

  • ソース パスがファイルで、ターゲット パスが / で終わる場合、Docker はターゲット パスをディレクトリとして扱い、ソース ファイルをそのディレクトリにコピーします (存在しない場合は自動的に作成されます)。
  • ターゲット ファイルが既存のファイルである場合は、ソース ファイルによって上書きされ、ファイル名はターゲット ファイル名になります。
1/5 - (2票)

手紙への返信

メールアドレスが変更されることはありません。 支払い欄に必須の項目は必須です