MEMO DETAIL

Docker + FileBrowser 備忘録

Debian系LinuxにDockerをインストールし、FileBrowserをDocker Composeで運用するためのメモ

1. Dockerのインストール

まず、Dockerのリポジトリを利用するために必要なパッケージをインストールする。

sudo apt-get install ca-certificates curl gnupg lsb-release

Docker公式リポジトリのGPGキーを登録する。

curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

Docker公式リポジトリを追加する。

echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

登録されたリポジトリを確認する。

cat /etc/apt/sources.list.d/docker.list

パッケージ情報を更新してDockerをインストールする。

sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

最後に、Dockerが正常に動作するか確認する。

docker run hello-world

2. Dockerコンテナの起動

Docker Composeの設定ファイル(compose.yml または docker-compose.yml)があるディレクトリで、次のコマンドを実行する。

docker compose up -d
ポイント: docker compose up -d は、必要に応じてコンテナを作成して起動するコマンド。 既存のコンテナがあれば、それを利用して起動する。

docker compose downはコンテナの停止とコンテナの削除を両方行っているみたい なのでコンテナ内部だけに保存していたデータは失われる。

そのため、FileBrowserのデータベースや設定ファイルなど、 コンテナを作り直しても残したいデータはホスト側に保存するようにする。

3. ホストPCとコンテナのデータを紐づける

Dockerでは、ホストPCのディレクトリをコンテナ内に ボリュームとしてマウントできる。

FileBrowserの場合、例えば次のような設定にする。

services:
  filebrowser:
    image: filebrowser/filebrowser
    container_name: filebrowser
    ports:
      - "8080:80"
    volumes:
      - /home/ubuntu/data:/srv
      - /home/ubuntu/filebrowser/database:/database
      - /home/ubuntu/filebrowser/config:/config
    restart: unless-stopped

各ボリュームの意味

重要: 「コンテナ」と「データ」は分けて考える。 コンテナは作り直しても、ホスト側にマウントしたデータは残るようにしておく。

4. 初回起動と2回目以降の動作

初回起動時にホスト側の databaseconfig が存在しなければ、 FileBrowser側で必要なファイルが作成される。

2回目以降は、すでにホスト側に保存されているデータベースや設定ファイルが コンテナから利用される。

つまり、コンテナを削除して作り直したとしても、 ホスト側に保存してあるデータベース・設定・ファイル本体は基本的にそのまま残る

注意: ホスト側の databaseconfig を手動で削除すると、 FileBrowserのデータや設定が失われる可能性がある。 バックアップを取っておくと安全。

5. Dockerコンテナの停止

Docker Composeで起動したコンテナを停止・削除する場合は次のコマンドを使う。

docker compose down

down はComposeで作成したコンテナやネットワークなどを停止・削除する。 ただし、今回のようにホスト側のディレクトリをボリュームとしてマウントしていれば、 そのディレクトリに保存されているファイルは通常そのまま残る。

6. 全体のイメージ

ホストPC
│
│
├── /home/ubuntu/filebrowser
│     │
│     ├── data
│     │     └──FileBrowserで管理するファイル
│     │
│     ├── database
│     │     └── FileBrowserのデータベース
│     │
│     └── config
│           └── FileBrowserの設定
│
└─────────────────────────────
            ↑
            │ volume mount
            ↓
Dockerコンテナ
│
└── FileBrowser
       ├── /srv      ← /home/ubuntu/data
       ├── /database ← /home/ubuntu/filebrowser/database
       └── /config   ← /home/ubuntu/filebrowser/config
覚え方: Dockerコンテナは「アプリを動かす箱」。 長期間残したいデータは、箱の外(ホスト側)に置いてコンテナからマウントする。

7. よく使うコマンド

起動

docker compose up -d

停止・削除

docker compose down

コンテナの状態確認

docker ps -a

ログ確認

docker compose logs

リアルタイムでログを見る

docker compose logs -f