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