Docker repositories
CloudBeaver container images are on DockerHub:
Each image has following tags:
Tag | Description |
latest | The latest stable product release |
22.1.2, 23.0.1, etc | Exact product version |
ea | Early Access version |
devel | Development version, unstable |
Examples:
-
dbeaver/cloudbeaver-ee:23.0.0
– CloudBeaver EE version 23.0
-
dbeaver/cloudbeaver-aws:ea
– CloudBeaver AWS Early Access version
-
dbeaver/cloudbeaver:latest
– latest community release
Notes:
Installation
To install the latest version of CloudBeaver use the following script:
docker pull dbeaver/cloudbeaver-ee:latest
Running
To run Cloudbeaver in the terminal:
docker run --name cloudbeaver-ee --rm -ti -p 8080:8978 -v /opt/cloudbeaver/workspace dbeaver/cloudbeaver-ee:latest
Then switch to the browser and open http://localhost:8080/
Daemon mode
Add the following parameters:
-d --restart unless-stopped
Accessing databases on the localhost
If you need to access the database server on the host machine, add the following parameter in docker run: (on Linux only)
Cloudbeaver will work in the host machine network.
If this mode is not suitable for your network environment then you can run the container in the following way:
export CB_LOCAL_HOST_ADDR=$(ifconfig | grep -E "([0-9]{1,3}\.){3}[0-9]{1,3}" | grep -v 127.0.0.1 | awk '{ print $2 }' | cut -f2 -d: | head -n1)
docker run --name cloudbeaver --rm -ti -p 8080:8978 --add-host=host.docker.internal:${CB_LOCAL_HOST_ADDR} -v /opt/cloudbeaver/workspace dbeaver/cloudbeaver-ee:latest
or just run script
deploy/docker/run-docker-container.sh
.
It passes the IP address of host machine to the container.
Docker parameters explanation
Parameters explanation:
Parameter | Explanation |
–name cloudbeaver | Assign container ID (
) |
–rm | Removes container on stop |
-ti | Enables terminal mode (allows to stop container with
) |
-p 8080:8978 | Maps CloudBeaver public port (8978) to the host machine port (e.g. 8080) |
-v /opt/cloudbeaver/workspace | Mounts local folder
/var/cloudbeaver/workspace
to the server workspace as Docker volume. Required to keep CloudBeaver data after container restart. For Example:
-v /var/cloudbeaver/workspace:/opt/cloudbeaver/workspace
-v $HOME/cloudbeaver/workspace:/opt/cloudbeaver/workspace
|
–add-host=host.docker.internal:IP address | Adds host name in the container’s /etc/hosts file. This may be needed to access the database server deployed on the host machine. |
dbeaver/cloudbeaver-ee:latest | Container ID |
Run Cloudbeaver server with non-root user
If you want to run CloudBeaver with a non-root user, you have to build your own image with a user inside before the container starts.
Create Dockerfile which contains:
FROM dbeaver/cloudbeaver-ee:latest
RUN groupadd cloudbeaver
RUN useradd -ms /bin/bash -g cloudbeaver cloudbeaver
RUN chown -R cloudbeaver ./
USER cloudbeaver
Run this command to build the image from Dockerfile
docker build -t my-cloudbeaver .
To run CloudBeaver in the terminal:
docker run --name cloudbeaver --rm -ti -p 8080:8978 -v /opt/cloudbeaver/workspace my-cloudbeaver
Offline install
On a host with no internet access you need to download and archive image:
Note:
is a tag name for docker image (see above).
is the default.
docker pull dbeaver/cloudbeaver-ee:<TAG>
docker save dbeaver/cloudbeaver-ee:<TAG> | gzip > cloudbeaver-ee.latest.tar.gz
Check that the archive exist:
Output should looks like:
-rw-r--r-- 1 user users 444M may 5 17:32 cloudbeaver-ee.latest.tar.gz
Now copy file
cloudbeaver-ee.latest.tar.gz
to some external drive and put to server with running cloudbeaver server.
Load image from archive:
docker load < cloudbeaver-ee.latest.tar.gz
You will see next output
Loaded image: dbeaver/cloudbeaver-ee:<TAG>
Upgrade your cloudbeaver-ee server:
docker stop cloudbeaver-ee
docker rm cloudbeaver-ee
docker run -d --restart unless-stopped -p 8978:8978 -v /opt/cloudbeaver/workspace dbeaver/cloudbeaver-ee:<TAG>
Note: some of docker args may differ from your environment.
How to change the base docker image
Create a new Dockerfile with the following content:
FROM alpine:latest
RUN apk update && apk add bash
ENV JAVA_HOME=/opt/java/openjdk
COPY --from=eclipse-temurin:17-alpine $JAVA_HOME $JAVA_HOME
ENV PATH="${JAVA_HOME}/bin:${PATH}"
ENV CLOUDBEAVER_HOME="/opt/cloudbeaver"
COPY --from=dbeaver/cloudbeaver:latest $CLOUDBEAVER_HOME $CLOUDBEAVER_HOME
WORKDIR "/opt/cloudbeaver"
RUN chmod +x run-server.sh
ENTRYPOINT ["./run-server.sh"]
The dockerfile above creates an image of the latest CloudBeaver CE based on Alpine.
- To change the OS:
- Replace the base image on the first line.
- Adapt the
RUN apk update && apk add bash
line to work with the package manager of your OS.
- If you’re changing the base OS from
-based (like Alpine) to
-based (like Debian or Fedora), change the tag for
from
to
.
- To change CloudBeaver edition or version, change the
dbeaver/cloudbeaver:latest
value to a more appropriate one.
Build a new image with:
docker build -t cloudbeaver-<edition>:<your_tag> .
Now, you can push the new image to your registry or run the CloudBeaver server.