プロジェクト

全般

プロフィール

Cassandra DBをDockerで動かす

単一ノードのCassandraをDockerコンテナで実行します。

手順

Dockerイメージの取得

インターネット上のDockerリポジトリ(DockerHub)からCassandraの最新イメージを取得

~$ sudo docker pull cassandra:latest
  :
~$ docker image ls
REPOSITORY   TAG      IMAGE ID      CREATED      SIZE
cassandra    latest   a304f309c41d  11 days ago  357MB
~$ 

Dockerイメージの実行

取得したイメージを基にDockerでCassandraを実行(データは永続化していないのでコンテナを削除すると消える)

~$ sudo docker container run --name cassandra-solo -d cassandra:latest
  :
~$ docker container ls
CONTAINER ID  IMAGE             COMMAND                 CREATED             STATUS            PORTS                                       NAMES
31e563f48fb9  cassandra:latest  "docker-entrypoint.s*" About a minute ago  Up About a minute 7000-7001/tcp, 7199/tcp 9042/tcp, 9160/tcp  cassandra-solo

Dockerコンテナで動作中のCassandraに Cqlsh で接続

実行中のCassandraコンテナにcqlshで接続します。

~$ docker container exec -it cassandra-solo cqlsh
Connected to Test Cluster at 127.0.0.1:9042
[cqlsh 6.2.0 | Cassandra 5.0.8 | CQL spec 3.4.7 | Native protocol v5]
Use HELP for help.
cqlsh>

キースペースとテーブルを作成

cqlsh> CREATE KEYSPACE my_app WITH replication={'class': 'SimpleStrategy', 'replication_factor': 1};
cqlsh> DESCRIBE keyspaces;
my_app  system_auth         system_schema  system_views
system  system_distributed  system_traces  system_virtaul_schema

cqlsh> USE my_app
cqlsh:my_app> CREATE TABLE user ( 
  user_id varchar PRIMARY KEY,
  first_name varchar,
  last_name varchar
);

  • 実験用なので分散なしのレプリカ数=1でキースペースを作成

テーブルにデータを入れて確認

cqlsh:my_app> INSERT INTO user (user_id, first_name, last_name) 
  VALUES ('SENDAI', 'MASAMUNE', 'DATE');

sqlsh:my_app> SELECT * FROM user;
user_id | first_name | last_name
--------+------------+------------
 SENDAI |   MASAMUNE |      DATE
(1 rows)
sqlsh:my_app> 

実行中のCassandraコンテナを停止

~$ sudo docker container stop cassandra-solo
  :
~$ docker container ls
CONTAINER ID  IMAGE  COMMAND   CREATED   STATUS  PORTS   NAMES
~$

コンテナを破棄

T.B.D.

要確認

  • docker network create cassandra


約23時間前に更新