🐡
【環境構築】MLflow(local, wsl2+Docker)
概要
この記事は、以下のURLの構成を自分の環境で再現したときのメモです。
実行手順
-
記事に従って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