Installing the Db2 Community Edition Docker image on macOS systems

You can use the Db2® Community Edition to quickly develop, test, and build applications to work with your business's operational and analytic workloads.

About this task

This procedure installs a Docker image of Db2 11.5.4 Community Edition on Apple macOS systems of version 10.10 or higher, equipped with Hyperkit. Hyperkit is a lightweight macOS virtualization solution built on top of the Hypervisor framework. The procedure assumes that you have Docker installed on a macOS system, using the steps outlined in Install Docker Desktop on Mac.

The Db2 Community Edition Docker image has the following, preset limitations:
  • Memory limit: 16GB
  • Core limit: 4 cores
  • Database size: 100GB

Procedure

  1. From the command line, create a new directory in which to store your database data:
    mkdir Docker
  2. Go to this directory by entering the following command:
    cd Docker
    Note: Docker uses a configuration file, config.json, for unencrypted storage of credentials. As a result, prior to entering your username and password, you may receive the message, WARNING: Error loading config file...., followed by the expected default location of the config.json file.

    This message will not prevent you from entering your credentials and accessing your Docker environment. Once you have logged in, Docker creates a config.json file and stores your credentials in the file at the default location. See docker login for information on creating secure storage of your Docker credentials.

  3. Pull the Db2 Docker image from ICR:
    docker pull icr.io/db2_community/db2
  4. Create an environment variables file, .env_list, for your Db2 Community Edition image:
    vi .env_list
  5. Paste the following into the environment variables file:
    LICENSE=accept
    DB2INSTANCE=db2inst1
    DB2INST1_PASSWORD=password
    DBNAME=testdb
    BLU=false
    ENABLE_ORACLE_COMPATIBILITY=false
    UPDATEAVAIL=NO
    TO_CREATE_SAMPLEDB=false
    REPODB=false
    IS_OSXFS=true
    PERSISTENT_HOME=true
    HADR_ENABLED=false
    ETCD_ENDPOINT=
    ETCD_USERNAME=
    ETCD_PASSWORD=
    where
    • LICENSE accepts the terms and conditions of the Db2 software contained in this image
    • DB2INSTANCE specifies the Db2 instance name
    • DB2INST1_PASSWORD specifies the password of the Db2 instance
    • DBNAME creates an initial database with the name provided (leave empty if no database is needed)
    • BLU sets BLU Acceleration for the Db2 instance to enabled (true) or disabled (false)
    • ENABLE_ORACLE_COMPATIBILITY sets Oracle compatibility on the instance to enabled (true) or disabled (false)
    • UPDATEAVAIL can be set to YES if there is an existing instance running a new container with a higher Db2 level.
    • TO_CREATE_SAMPLEDB creates a sample (pre-populated) database (true)
    • REPODB creates a Data Server Manager repository database (true)
    • IS_OSXFS identifies the operating system as macOS (true)
    • PERSISTENT_HOME is set to true by default and should only specified as false when running Docker for Windows
    • HADR_ENABLED configures Db2 HADR for the instance (true). The following three environment variables depend on HADR_ENABLED being set to true:
      • ETCD_ENDPOINT specifies your own provided ETCD key-value store. Enter your endpoints with a comma (and no space) as the delimiter. This environment variable is required if HADR_ENABLED is set to true
      • ETCD_USERNAME specifies the username credential for ETCD. If left empty, it will use your Db2 instance
      • ETCD_PASSWORD specifies the password credential for ETCD. If left empty, it will use your Db2 instance password
  6. Save the file by pressing ESCAPE (ESC), and entering:
    :wq!
  7. Enter and run the following command to enter the Docker container:
    docker run -h db2server --name db2server --restart=always --detach --privileged=true 
    -p 50000:50000 --env-file .env_list -v /Users/<username>/Docker:/database icr.io/db2_community/db2
    where
    -h assigns the name db2server to the Docker container.
    -p specifies the port numbers to use.
    --privileged starts the container in privileged mode.
    -v defines the volume used for the Db2 Docker image.
  8. Enter the following command to access the running Db2 instance within your Docker container:
    docker exec -ti db2server bash -c "su – db2inst1"
    where db2inst1 is the value associated with the DB2INSTANCE variable in your .env_list file.
  9. You can now create a Db2 database within the active instance.