portainer.io を使わない方法は操作を見て dockerコマンドに置き換えとのこと
mariadb導入
Add container でイメージに「mariadb」を指定
追加で下記を設定する
- Network ports configuration
- Manual network port publishing で 3306/tcp を公開する
- Advanced container settings
- Env
- MARIADB_ROOT_PASSWORD を設定する
※ 以後 Container details でも参照可能な値となるので、パスワード管理に注意
- MARIADB_ROOT_PASSWORD を設定する
- Env
公開されたDBを参照する
HeidiSQL の例、他クライアントでも同様
- セッションマネージャー 画面
- 新規
- ホスト名 / IP : Dockerが稼働しているサーバーのIP
- ユーザ : root
- パスワード : MARIADB_ROOT_PASSWORD で指定したパスワード
- ポート : 「Manual network port publishing」で設定したポート
- 新規
Q. データを永続化したい
2023/5/11 時点、実は自動的に永続化されるように導入される
Volumes を参照すると /var/lib/mysql に対して volume が1件割り当てられている
これのおかげでコンテナを作り直してもデータは失われない
logファイルを永続化したい場合は /var/log/mysql を同様に Volume へ切り出せばよい
Docker compose にすると
services:
mariadb:
image: mariadb:latest
volumes:
- mariadb-data:/var/lib/mysql
- mariadb-log:/var/log/mysql
environment:
- MARIADB_ROOT_PASSWORD=password
ports:
- "3306:3306/tcp"
volumes:
mariadb-data:
mariadb-log:
※ 補足:volumes: の中身は何も書かれていないが、これで動作する