Windows版DockerのインストールとグラフDBのDockerImageの作成

これまでマカーだったのに、メモリ不足に我慢できずノートPCを更新することに。

金額とスペックを相談したところ、HPのspecre X360に。

めちゃくちゃ熱くなるところ以外は満足してます。設定もいろいろやったのですが、今日はタイトルのことで色々やったので記録しておく。

 

 Docker for Windowsのインストール

参考:https://www.kakistamp.com/entry/2018/11/26/231341

設定→アプリ→アプリと機能→関連設定「プログラムと機能」→「Windowsの機能の有効化または無効化」を開く

Hyper-Vのチェックを全てにチェックを入れる

win+X→A で管理者でPowerShellを開く

Chocolateyを使って、Dockerをインストール

choco install -y docker
choco install -y docker-compose
choco install -y docker-for-windows

以上で完了。Dockerを起動するとメッセージが出るので、パソコンを再起動する。

Redmineで起動を確認する

docker pull redmine
docker run -p 8080:3000 -dti redmine

これで127.0.0.1:8080にアクセスするとredmineの画面が表示される

 WindowsのDockerでPGXを使えるようにする。

参考:https://www.slideshare.net/HikariMorita/windows-docker-pgx

1.PGXのダウンロード

Oracleのサイトからダウンロードする。アカウントの作成が必要。
商用利用はできないが、無償で検証や開発は可能とのこと。
https://www.oracle.com/technetwork/oracle-labs/parallel-graph-analytix/downloads/index.html
今回は参考ページにあわせて、2.7.0をダウンロード

2.configファイルを作成

作業するフォルダとしてc:\Users\homaju\data\pgxを作成。
ここに、configファイルを作成する。

{
"port": 7007,
"enable_tls": false,
"enable_client_authentication": false
}

 

同じ場所にDockerfileを作成

 FROM openjdk:8-jdk

ARG PGX_VERSION=2.7.0
ENV PGX_HOME=/opt/pgx \
INSTALL_FILE=pgx-${PGX_VERSION}-server.zip

# 1. copy from downloaded file
COPY $INSTALL_FILE $PGX_HOME/

# 2. extract the file
WORKDIR $PGX_HOME
RUN apt-get install -y unzip && \
unzip $INSTALL_FILE && \
rm $INSTALL_FILE

# 3. Change config file
WORKDIR ./pgx-${PGX_VERSION}/
RUN rm ./conf/server.conf
COPY server.conf ./conf/server.conf

CMD ./bin/pgx

 

 

ダウンロードしたzipファイル、server.config、Dockerfileを同じフォルダに保存する。

3. Dockerイメージの作成


PowerShellの画面などで、1で作成したフォルダに移動する。
コマンドを実行
>docker build -t pgx-2.7.0 .
実行が成功したらコマンドで確認

>docker images

4. PGX Shellを起動

>docker run -it --rm pgx-2.7.0 ./bin/pgx

 

これで起動してPGXのShellが使えるようになる。
終了時は>:exit
ヘルプ表示は>:help

 

5. データを実際に使用してみる。(準備)


グラフDBの説明や実際の方法は下記スライドを参考にした。
https://www.slideshare.net/oracle4engineer/oracle-labs-pgx/

データの入手でExposedata.comからとなっているが、現時点でドメインが失効しているので、同じデータをKaggleから取得
https://www.kaggle.com/csanhueza/the-marvel-universe-social-network/downloads/the-marvel-universe-social-network.zip/1
Kaggleでのアカウントが必要なので注意
ダウンロードしたデータを解凍して、PGXフォルダにstorage/hero-networkを作成し、csvファイルを保存する。
ロードするための情報をJSONで記述する
hero-network.csv.jsonをダウンロードデータと同じフォルダに保存

{
"uri": "hero-network.csv"
, "format": "edge_list"
, "node_id_type": "string"
, "separator": ","
}

 

6. データフォルダをマウントして起動

>docker run -it --rm -v c:\Users\homaju\data\PGX\strage:/opt/pgx/workspace pgx-2.7.0


データの読み込みは

pgx> G = session.readGraphWithProperties("../workspace/hero-network/hero-network.csv.json")

 

読み込んだデータの処理は上記参照のP26からを参考に
https://www.slideshare.net/oracle4engineer/oracle-labs-pgx/3