Official image for SAP HANA, express edition on Linux for Docker Engine.
100K+
Overview
SAP HANA, express edition is a streamlined version of the SAP HANA platform which enables developers to jumpstart application development in the cloud or personal computer to build and deploy modern applications that use up to 32GB memory. SAP HANA, express edition includes the in-memory data engine with advanced analytical data processing engines for business, text, spatial, and graph data - supporting multiple data models on a single copy of the data.
The software license allows for both non-production and production use cases, enabling you to quickly prototype, demo, and deploy next-generation applications using SAP HANA, express edition without incurring any license fees.
This installation does not support Docker for Windows or Docker for Mac.
Prerequisites:
SAP HANA, express edition for Docker has been tested on the following Linux operating system versions:
Linux OS: SLES
OS Version: 12.2, 12.3, 12.4
Docker Editions: Community
Log into Docker
To log into your Docker account, run:
sudo docker login
Follow the prompts and provide your Docker ID and password.
You also need to ensure your proxy settings have been properly set up. See HTTP/HTTPS proxy in the Docker documentation.
Test Your Docker installation
Test your Docker installation by running the "Hello World" container application. Run the following command from your Docker-enabled command prompt:
sudo docker run --name helloWorld alpine echo hello
If successful, the following should display:
Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
88286f41530e: Pull complete
Digest: sha256:<log_number>
Status: Downloaded newer image for alpine:latest
hello
If hello is printed, you have successfully pulled the container image alpine (a demo Linux distribution), and ran the instance of the container helloWorld, and ran the command echo with an input parameter of hello.
If you did not get this output, the Docker installation has not been completed or the Docker daemon can not connect to the internet. Review the process and check the Docker Documentation for more information in troubleshooting your Docker installation.
Remove the alpine image with the following command:
sudo docker image rm alpine -f
Prepare Docker Container
Edit the host sysctl.conf file
Before you can start the container, ensure that the following parameters are set in your host's /etc/sysctl.conf file. The host can be a virtual machine, physical machine, or a cloud instance.
fs.file-max=20000000
fs.aio-max-nr=262144
vm.memory_failure_early_kill=1
vm.max_map_count=135217728
net.ipv4.ip_local_port_range=40000 60999
To edit the sysctl.conf file, use the vi command to open the file and press i to switch to interactive mode. Edit the file as necessary, hit the esc key, and type and enter :wq! to write and save the changes.
Create a directory to persist SAP HANA, express edition data outside of the container
Create a directory for the SAP HANA, express edition container and grant it the proper permissions.
mkdir -p /data/<directory_name>
chown <hxeadm userID or name>:<sapsys groupID or name> /data/<directory_name>
For example:
mkdir -p /data/mydirectory
chown 12000:79 /data/mydirectory
The name of this directory does not need to match the name you give to your SAP HANA, express edition container.
Set up password for SAP HANA, express edition
To make your system more secure, you specify your own password before you create your container. This is done by creating a json file as opposed to having a default password. The file can be stored locally or on another system accessible by URL. If the file is to be stored locally, store it in the /data/<directory_name> directory you created earlier.
Create the json file:
vi <file_name>.json
Press i to start editing and use one of the following formats to create the file:
{
"master_password" : "<password>"
}
or:
{
"system_user_password" : "<password>",
"default_tenant_system_user_password" : "<second_password>"
}
Here is an example:
{
"master_password" : "HXEHana1"
}
Press esc and then enter wq! to write and save the file.
This file serves as the master password for your SAP HANA, express edition users. The password must comply with these rules:
You must then add permissions for this file to be readable by the hxeadm user in the container. Change permissions with:
sudo chmod 600 /data/<directory_name>/<file_name>.json
sudo chown 12000:79 /data/<directory_name>/<file_name>.json
Be sure to do this with each json file you use for your Docker containers.
Make a note of the path to the json file. You will need this to load the SAP HANA, express edition container.
Load the SAP HANA, express edition container
First docker container
Use the SAP HANA, express edition image to create a container.
sudo docker run -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014 -v /data/<directory_name>:/hana/mounts \
--ulimit nofile=1048576:1048576 \
--sysctl kernel.shmmax=1073741824 \
--sysctl net.ipv4.ip_local_port_range='40000 60999' \
--sysctl kernel.shmmni=524288 \
--sysctl kernel.shmall=8388608 \
--name <container_name> \
store/saplabs/hanaexpress:<tag> \
--passwords-url <file://<path_to_json_file> OR http/https://<url_to_json_file>> \
--agree-to-sap-license
For information on the TCP/IP port ranges, see TCP/IP Ports of All SAP Products. Filter the list by "SAP Cloud Platform".
Example:
sudo docker run -p 39013:39013 -p 39017:39017 -p 39041-39045:39041-39045 -p 1128-1129:1128-1129 -p 59013-59014:59013-59014 -v /data/express_edition:/hana/mounts \
--ulimit nofile=1048576:1048576 \
--sysctl kernel.shmmax=1073741824 \
--sysctl net.ipv4.ip_local_port_range='40000 60999' \
--sysctl kernel.shmmni=524288 \
--sysctl kernel.shmall=8388608 \
--name express_edition \
store/saplabs/hanaexpress:<tag> \
--passwords-url file:///hana/mounts/password.json \
--agree-to-sap-license
This example creates the SAP HANA, express edition container with the name express_edition. This process will take several minutes. The prompt will read Startup finished once the container has been successfully running. This container starts in detached mode so you will need to open another command prompt to continue.
Note: If you placed the password file in /data/<directory_name>/<file_name>.json, substitute file://<path_to_json_file> with file:///hana/mounts/<file_name>.json.
Check if the password file /hana/mounts/<file_name>.json was deleted after the SAP HANA, express edition container starts. If not, you can manually delete it. If the JSON file you are using is an http or https URL, you can leave out the -v option.
Still having problems? Check that the string containing the mount is an absolute path.
Note: For Linux kernel versions earlier than 4, omit the net.ipv4.ip_local_port_range option.
Note: If the Docker container fails to create an SAP HANA instance, you will need to remove the Docker container to try again. Run docker rm <container_name> to remove the container. Additionally, you will need to delete the files created in the /data/directory_name/ directory.
Connect to the SAP HANA, express edition docker container
To start your SAP HANA, express edition container, run the following command:
sudo docker exec -it <container_name> bash
Example:
sudo docker exec -it express_edition bash
Optional: Test the Container
When you are logged into the SAP HANA, express edition container, you can test your installation by entering the following:
whoami
You should be logged in as hxeadm, the default SAP HANA, express edition user.
You can also enter the following:
HDB info
And you should see the following services running:
Optional: Log into the database
You can log into the system database with the following command:
hdbsql -i 90 -d <system_database> -u SYSTEM -p <password>
You can log into your tenant database with the following command:
hdbsql -i 90 -d <tenant_database> -u SYSTEM -p <password>
Connect via JDBC driver
To log into your system database via JDBC, use the following command:
jdbc:sap://<ip_address>:39017/?databaseName=<database_name>
To log into your tenant database via JDBC, use the following command:
jdbc:sap://<ip_address>:39041/?databaseName=<tenant_name>
For detailed information on the connection properties you can specify when connecting using JDBC, see JDBC Connection Properties in the SAP HANA Client Interface Programming Reference.
Additional docker containers
You will need to repeat the previous steps of creating a directory and JSON password for each additional SAP HANA, express edition container you wish to create.
sudo docker run -p 10013:39013 -p 10017:39017 -p 10041-10045:39041-39045 -p 10028-10029:1128-1129 -p 19013-19014:59013-59014 -v /data/<additional_directory_name>:/hana/mounts \
--ulimit nofile=1048576:1048576 \
--sysctl kernel.shmmax=1073741824 \
--sysctl net.ipv4.ip_local_port_range='40000 60999' \
--sysctl kernel.shmmni=524288 \
--sysctl kernel.shmall=8388608 \
--name <additional_container_name> \
store/saplabs/hanaexpress:<tag> \
--passwords-url <file://<path_to_json_file> OR http/https://<url_to_json_file>>
--agree-to-sap-license
This process will take several minutes. The prompt will read Startup finished once the container has been successfully running. This container starts in detached mode so you will need to open another command prompt to continue.
Additional information
Check the container status
sudo docker ps -a
Updating Docker Image
Set the root password and login.
docker exec -it -u root <container_name> bash
passswd
Check the update utility. It can be found in the <sid> adm/bin directory. Use HXECheckUpdate_linux.bin. Run this to check for, and download, the latest files. Follow the prompts to download the new files. By default, they will be downloaded to /usr/sap/<sid>/home/Downloads. The downloaded file will be hxe.tgz.
Extract the contents of the packages.
Example:
tar -zxf <downloaded_path>/hxe.tgz
tar -zxf <downloaded_path>/hxexsa.tgz
Navigate to the directory where you extracted the packages:
cd <extract_path>/HANA_EXPRESS_20/
Note: If the update you are applying includes the Applications package, increase your allocated memory by 3GB and run ./hxe_gc.sh. Follow the prompts and then continue with the procedure.
As the root user, run the upgrade script to update the server:
sudo ./hxe_upgrade.sh
Follow the prompts to complete the server update.
Docker run usage
The following is a list of options available for the sudo docker run store/saplabs/hanaexpress command.
sudo docker run store/saplabs/hanaexpress:<tag> -h
usage: [options]
--dont-check-consistency Skip consistency check between mount points
--dont-check-mount-points Skip check for allowed mount points
--dont-check-version Skip compatibility check of current and last HANA version
--dont-check-system Skip check for incompatible /proc/sys values
--dont-exit-on-error Halt script on error to allow root cause analysis
(MUST NOT be used in production)
--license-url <url> URL for a license file (json)
Format: {"landscape-id":"<8-4-4-4-12 GUID>", "license":"<license>"}
--passwords-url <url> URL for a password file (json)
Format:
{"master_password":"<pwd>"}
or
{"system_user_password":"<pwd>","default_tenant_system_user_password":"<pwd>"}
--print <print_option> Print and exit, options are:
README
hdb_version
--agree-to-sap-license Indicates you agree to the SAP Developer Center Software Developer License Agreement.
Client Drivers
If you want to download clients to connect to your SAP HANA, express edition installation from another device, you can download client drivers. First you will need to download the SAP HANA, express edition download manager by registering online at the SAP HANA, express edition registration page.
For more information about downloading and installing clients for SAP HANA, express edition, see the Install the SAP HANA, express edition clients group tutorials.
SAP HANA Studio
SAP HANA Studio is available as a plugin for Eclipse. To install the plugin, visit the tutorial How to download and install the HANA Eclipse plugin. Note, there are specific instructions for connecting Docker installations.
End User License Agreement
You can find the SAP End User License Agreement at https://www.sap.com/docs/download/cmp/2016/06/sap-hana-express-dev-agmt-and-exhibit.pdf.
You can find this information as a tutorial at sap.com.
Content type
Image
Digest
sha256:432be2785…
Size
1.8 GB
Last updated
10 months ago
docker pull saplabs/hanaexpress