Dockerで始める
準備
Dockerはどのバージョンでも使用できますが、最新バージョンを推奨します。
Dockerイメージの取得
以下のコマンドをターミナルで実行すると、machbase-neoの最新Dockerイメージをダウンロードできます。
$ docker pull machbase/machbase-neo特定のバージョンをインストールするには、コマンドにタグを追加します。
$ docker pull machbase/machbase-neo:v8.7.0他のバージョンのDockerイメージは、Docker Hubで確認できます。
Dockerコンテナの実行
フォアグラウンドでの実行
$ docker run -it machbase/machbase-neo-i,--interactive: 接続していない場合も標準入力を開いたままにします。-t,--tty: 疑似TTYを割り当てます。
フォアグラウンドで実行すると、Ctrl + cで直接停止できます。
バックグラウンドでの実行
$ docker run -d machbase/machbase-neo-d,--detach: コンテナをバックグラウンドで実行し、コンテナIDを表示します。
バックグラウンドで実行した場合は、以下のコマンドで停止できます。
$ docker stop $(docker ps | grep machbase-neo | awk '{print $1}')machbase-neoイメージを複数使用している場合は、上記のコマンドではなくコンテナIDを直接指定して停止することを推奨します。
例
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92382cf7b738 machbase/machbase-neo "/bin/sh -c '/opt/ma…" 2 seconds ago Up 1 second 5652-5656/tcp exciting_volhard
$ docker stop 92382cf7b738
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
# コンテナは停止しています。その他のDockerコマンドは、Dockerドキュメントを参照してください。
Dockerの構成
ボリューム
ホストのディレクトリを、Dockerコンテナ内のmachbase-neoのホームパスにバインドできます。
docker run -d
-v /path/to/host/data:/data
-v /path/to/host/file:/file
machbase/machbase-neo/data: Dockerコンテナ内のmachbase-neoのホームパスです。/file: Dockerコンテナ内のmachbase-neoのTQLパスです。-v,--volume: ボリュームをバインドマウントします。
Dockerが停止しても、マウントしたホストのディレクトリは保持されます。
ポート
machbase-neoはDocker内で複数のポートを公開します。
| ポート | 説明 |
|---|---|
| 5652 | sshd |
| 5653 | mqtt |
| 5654 | http |
| 5655 | grpc |
| 5656 | データベースエンジン |
ポートマッピング(転送)
$ docker run -d -p <host port>:<container port>/<protocol> machbase/machbase-neo-p,--publish: コンテナのポートをホストに公開します。<host port>: ホストマシンのポートです。<container port>: コンテナのポートです。<protocol>: tcp、udp、sctpなどを指定します。
machbase-neoコンテナを実行するときに、以下のようにホストポートをコンテナポートにマッピングできます。
例
$ docker run -d \
-p 5652-5656:5652-5656/tcp \
--name machbase-neo \
machbase/machbase-neoこの構成では、ホストポートに届いたすべてのリクエストがコンテナポートに転送されます。
SSHキーによるmachbase-neoシェルへのリモート接続
machbase-neoシェルに接続する前に、SSHキーを生成します。
$ ssh-keygen -t rsaSSHキーを作成したら、別の環境でmachbase-neoを起動します。
$ docker pull machbase/machbase-neo
$ docker run -d
-p 5652-5656:5652-5656/tcp
--name machbase-neo
machbase/machbase-neo既定では、SSH接続のたびにパスワードの入力が必要です。machbase-neoシェルにキーを登録すると、パスワードの入力を初回だけにできます。
$ ssh -l sys -p 5652 192.168.0.116 ssh-key add `cat ~/.ssh/id_rsa.pub`
sys@192.168.0.116's password? manager
Add sshkey successこの設定により、接続のたびにパスワードを入力する必要がなくなります。
例
$ ssh -l sys -p 5652 192.168.0.116 'create table example (v1 int)';
executed.
$ ssh -l sys -p 5652 192.168.0.116 'show tables';
┌──────────────────────────────────────────────────┐
│ ROWNUM │ DB │ USER │ NAME │ TYPE │
├──────────────────────────────────────────────────┤
│ 1 │ MACHBASEDB │ SYS │ EXAMPLE │ Log Table │
└──────────────────────────────────────────────────┘Docker Composeの使用
以下の内容をdocker-compose.ymlに保存し、プロジェクトのルートディレクトリに配置します。
# docker-compose.yml
version: '3'
services:
machbase-neo:
image: machbase/machbase-neo
container_name: machbase-neo
hostname: machbase
volumes:
- /data:/data
- /file:/file
ports:
- "5652:5652" # sshd
- "5653:5653" # mqtt
- "5654:5654" # http
- "5655:5655" # grpc
- "5656:5656" # database engine次に、プロジェクトのルートディレクトリで以下のコマンドを実行します。
$ docker compose up -d以下のように実行することもできます。
$ docker compose -f docker-compose.yml up -dDocker Composeを停止するには、次のコマンドを使用します。
$ docker compose downすべてのサービスが正常に停止します。