Docker + FileBrowser 備忘録
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
各ボリュームの意味
-
/home/ubuntu/data:/srv
FileBrowserで実際に操作するファイルを保存する場所。 ホストPCの/home/ubuntu/dataがコンテナ内の/srvとして見える。 -
/home/ubuntu/filebrowser/database:/database
FileBrowserのデータベースをホストPC側に保存する。 -
/home/ubuntu/filebrowser/config:/config
FileBrowserの設定ファイルをホストPC側に保存する。
4. 初回起動と2回目以降の動作
初回起動時にホスト側の database や config が存在しなければ、
FileBrowser側で必要なファイルが作成される。
2回目以降は、すでにホスト側に保存されているデータベースや設定ファイルが コンテナから利用される。
つまり、コンテナを削除して作り直したとしても、 ホスト側に保存してあるデータベース・設定・ファイル本体は基本的にそのまま残る。
database や config を手動で削除すると、
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
7. よく使うコマンド
起動
docker compose up -d
停止・削除
docker compose down
コンテナの状態確認
docker ps -a
ログ確認
docker compose logs
リアルタイムでログを見る
docker compose logs -f