The following are a set of management operations you can perform when using your cluster-in-a-box
container. These operations are included as reference for users who are not familiar with managing Docker containers.
Upgrade the MemSQL Docker Image
If you do not use a volume to persist your data, you will lose any data stored in the MemSQL cluster-in-a-box
container during the upgrade process.
-
To upgrade the
memsql/cluster-in-a-box
Docker image to the latest version, rundocker pull
:docker pull memsql/cluster-in-a-box
-
Stop and remove the old container. This will delete any data stored in the container.
docker stop memsql-ciab
docker rm memsql-ciab
-
If you did not use a volume to preserve data in your container, restart it with the latest image by running steps 2 and 3 from Run the Container again.
-
If you did set up your Docker container with a volume, run the following instead:
Linux/macOS
docker run -d --init \ --name memsql-ciab \ -v memsql-ciab-data:/var/lib/memsql \ -p 3306:3306 -p 8080:8080 \ memsql/cluster-in-a-box
Windows
docker run -d --init ` --name memsql-ciab ` -v memsql-ciab-data:/var/lib/memsql ` -p 3306:3306 -p 8080:8080 ` memsql/cluster-in-a-box
Stop, Restart, or Remove the Image
If you have a running container, you can manage it through the following commands.
Stopping the container (must be running):
docker stop memsql-ciab
Restarting the container (must be running):
docker restart memsql-ciab
Remove the container (all data will be deleted):
docker rm memsql-ciab
Access the Built-in MemSQL Tools
Every memsql/cluster-in-a-box
container also contains the MemSQL tools needed to perform cluster operations.
To access these tools, you must connect directly to a running container using docker exec
as shown below:
docker exec -it memsql-ciab /bin/bash
Once connected, you can run any of the MemSQL tools; however, because the master aggregator and leaf node share the same container (and thus the same host machine), memsqlctl was used to setup and configure the cluster. If the deployment was across multiple host machines, then the higher-level tools such as memsql-admin and memsql-deploy would have been used instead.
The following will show you how to retrieve all of the nodes in the container:
memsqlctl list-nodes
****
+------------+--------+------+---------------+--------------+---------+----------------+--------------------+
| MemSQL ID | Role | Port | Process State | Connectable? | Version | Recovery State | Availability Group |
+------------+--------+------+---------------+--------------+---------+----------------+--------------------+
| F7C4D853E0 | Master | 3306 | Running | True | 6.7.1 | Online | |
| 77BCA7CC40 | Leaf | 3307 | Running | True | 6.7.1 | Online | 1 |
+------------+--------+------+---------------+--------------+---------+----------------+--------------------+