🐡

【環境構築】MLflow(local, wsl2+Docker)

2023/11/27に公開

概要

この記事は、以下のURLの構成を自分の環境で再現したときのメモです。
https://qiita.com/c60evaporator/items/e1fd57a0263a19b629d1#シナリオ3-mlflow-on-localhost-with-tracking-server

実行手順

  • 記事に従ってwsl2とdockerをセットアップ
    • memo アンスト&再インスト時はlinux subsystemに関する2~3個のプログラムを先にアンインストールする必要があった
  • 記事からwsl2の環境にファイルをコピー
  • プライベートipを.envファイルに設定
  • docker-compose up を実行して、サービスを起動
  • 起動後、以下のURLで各サービスにアクセスできます:
    pgadmin: http://127.0.0.1:81
    tracking-server: http://127.0.0.1:5000
  • 依存関係を追加した場合、以下のコマンドでサービスのイメージが最新でない場合に自動的に再ビルドを行い、その後サービスを起動
    docker-compose up --build

構成

.
├── db_server  # `db_server` ディレクトリ: ここはデータベースサーバーに関連するファイル
├── docker-compose.yaml  # Docker Composeの設定ファイルです。このファイルは複数のコンテナを定義し、それらを一緒に動作させるために使用されます。おそらく、このシステム内の複数のサービス(データベースサーバー、FTPサーバー、トラッキングサーバーなど)を管理
├── ftp  # FTPサーバーに関連するファイルを格納
│   └── data  # FTPサーバーで扱うデータを保存
└── tracking_server  # トラッキングサーバーに関連するファイルを格納
    └── Dockerfile  # トラッキングサーバーのDockerイメージをビルドするために使用。サーバーを実行するために必要な環境設定、依存関係のインストール、実行コマンドなどが記述

Docker Compose を使用して複数のコンテナを一括で起動

docker-compose up
コンテナ URL
pgadmin http://127.0.0.1:81
tracking-server http://127.0.0.1:5000

初回docker-compose up時の標準出力のメモ

# サービス `tracking-server` のためのイメージが存在しないため、ビルドが行われました。このイメージを再ビルドするには `docker-compose build` または `docker-compose up --build` を使用する必要があります。
WARNING: Image for service tracking-server was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.

# `ftp-server` というサービスのイメージをダウンロードしています。このイメージは `stilliard/pure-ftpd:latest` として指定されています。
Pulling ftp-server (stilliard/pure-ftpd:latest)...

# `ftp-server` サービスのためのイメージの各レイヤーがダウンロードされ、すべてのレイヤーが完全にダウンロードされたことが示されています。
latest: Pulling from stilliard/pure-ftpd
b4d181a07f80: Pull complete
e98cb485cfd8: Pull complete
0822c77e0e0b: Pull complete
8588bb5b4480: Pull complete
a41cb6218cc9: Pull complete
7ac94abef10b: Pull complete
8d5dc14fad00: Pull complete
417d6be4b5ec: Pull complete
71cd100c9ec0: Pull complete
227193214c34: Pull complete

# `stilliard/pure-ftpd:latest` イメージのダウンロードが完了したことを示しています。
Digest: sha256:bfdfe0d725bee473b6c06ec0c39d6956dcaa2a504a1e33825ecf41242f05b436
Status: Downloaded newer image for stilliard/pure-ftpd:latest

# 以下のサービスのコンテナが作成されました:`postgres-db`, `ftp-server`, `mlflow_pgadmin_1`, `mlflow_waitfordb_1`, `mlflow-tracking`。
Creating postgres-db ... done
Creating ftp-server         ... done
Creating mlflow_pgadmin_1   ... done
Creating mlflow_waitfordb_1 ... done
Creating mlflow-tracking    ... done

# 上記で作成されたコンテナにアタッチしています。
Attaching to postgres-db, ftp-server, mlflow_waitfordb_1, mlflow_pgadmin_1, mlflow-tracking

# `ftp-server` コンテナにおいて、ユーザーの作成、パスワードの設定、ディレクトリの所有権の設定、ポート範囲、クライアント数、IPごとの最大接続数の設定を行っています。
ftp-server         | Creating user...
ftp-server         | Password:
ftp-server         | Enter it again:
ftp-server         |  root user give /home/ftpusers directory ftpuser owner
ftp-server         | Setting default port range to: 30000:30009
ftp-server         | Setting default max clients to: 5
ftp-server         | Setting default max connections per ip to: 5
ftp-server         | Starting Pure-FTPd:
ftp-server         |   pure-ftpd  -l puredb:/etc/pure-ftpd/pureftpd.pdb -E -j -R -P localhost "--tls=2"  -p 30000:30009 -c 5 -C 5

# `waitfordb_1` コンテナは、`db-server` が 5432 ポートでリッスンするのを待っています。これは、データベースサーバーの準備が完了するのを待機している状態を示しています。
waitfordb_1        | Waiting for db-server to listen on 5432...
waitfordb_1        | sleeping


Discussion