Public Repository

Last pushed: a month ago
Short Description
IBM Informix Innovator-C for Linux (64bit)
Full Description

What is IBM Informix Innovator-C ?

IBM Informix Innovator-C eliminates the up-front licensing costs of developing popular database functionality for use in production (redistribution requires a separate license). The Innovator-C Edition is available on Linux, Windows and Mac platforms and is limited to one core and 2 GB of memory.

Informix Innovator-C Edition delivers the following features and benefits:

  • Autonomic features minimize system failures and improve performance..
  • Automated backup and restore eliminates many manual tasks.
  • Selected support at Elite level is available as an optional purchase.

IBM Informix Family

IBM Informix Innovator-C Edition

IBM Elite Support

Supported tags

  • latest

The supported tags stands for <informix version> - <Linux kernel version of Docker Engine>.
Informix Docker images can be deployed on a Docker Engine with any flavour of Linux , as long as it has the compatible Linux kernel-2.6.32, like CentOS 6.6.

  • Please make sure your Docker Engine has a compatible Linux kernel
  • Please use Docker 1.6.0 or later release on Ubuntu Docker Engine or Boot2Docker since there is a known issue with [aufs and direct io] (https://github.com/docker/docker/pull/10534)

How to use this image ?

This docker image has to be deployed to Docker Engine on one of supported Cloud providers or your own system. The instructions for creating Docker Engine vary by Cloud provider. We recommend to use [Docker Machine (beta)] (https://docs.docker.com/machine/) to provision Docker Engine.

In order to use the image, it is necessary to accept the terms of the Informix Innovator-C license. This is achieved by specifying the environment variable LICENSE equal to accept when running the image.

This docker image contains pre-deployed Informix Innovator-C.

1 - Starting an Informix Docker Container for the First time.

docker run -it --name ifx --privileged -p 9088:9088 -p 9089:9089 -p 27017:27017 -p 27018:27018 \
-p 27883:27883 -e LICENSE=accept ibmcom/informix-innovator-c:latest
  • -p, expose port 9088 to allow remote connections from TCP clients
  • -p, expose port 9089 to allow remote connections from DRDA clients
  • -p, expose port 27017 to allow remote connections from Mongo clients
  • -p, expose port 27018 to allow remote connections from REST clients
  • -p, expose port 27883 to allow remote connections from MQTT clients
  • --privileged, allows Informix Server in Docker Engine to manage kernel configuration
  • The default password for user informix is in4mix, for root access informix has sudo privileges.

  • By specifying -e LICENSE=accept parameter, you are accepting this License to use the software contained in this image.

  • -it When using this option you will be placed into a shell. When exiting this shell the docker container will be stopped.

  • -td If you use the -td option instead of -it option, the container will be started and you will not be placed inside a shell. So you have to attach to the container to perform basic Informix operations.

  • The docker run command will perform a disk initialization for the Informix Database Server. When you exit this shell the server will be taken offline.

  • After disk initialization of the Informix server you should start and stop the server with docker start/stop

2 - Start the Informix Docker container

The docker start command will start a (stopped) container and bring the database online. It will not perform a disk initialization.

docker start ifx 

3 - Stop the Informix Docker container

The docker stop command will stop a running container and take the database offline.

docker stop ifx 

4 - To attach to the Informix Docker container (shell)

docker exec -it ifx bash

5 - Additional Options (docker run):

  • -v /home/informix/extvol:/opt/ibm/data This option mounts an external volume (/home/informix/extvol) to a pre-defined internal volume (/opt/ibm/data) The external volume is a directory created on the host system.
  • -e TYPE=[oltp|dss|hybrid] will configure your Informix server accordingly. Your informix server will be configured to use all available resources given to the container. So to limit the amount of cpu and memory used for a given container it is specified on the docker run command.

  • -e SIZE=[small|medium|large|custom ] will configure your Informix server based on size. The options -e SIZE and -e TYPE are mutually exclusive. More Information on sizing here.

6 - Storage Options:

The docker image supports anonymous volumes, named volumes or bind mounts.

  • Default behavior is anonymous volume. When you issue the docker run command it will create an anonymous volume which can be seen in a docker volume ls command. When -v option is NOT used on the docker run command.
  • Named volumes can be used, use the -v option and follow these instructions:
Create a named  volume:
   docker volume create ifx-vol

Use The named volume:
     docker run --name ifx -v ifx-vol:/opt/ibm/data \
          -p 9088:9088 -p 9089:9089 -p 27017:27017  \
          -p 27018:27018 -p 27883:27883  informix-db
  • -v ifx-vol:/opt/ibm/data This option mounts a named volume (ifx-vol) to a pre-defined internal volume (/opt/ibm/data) For more information on the named volume see the docker volume command.

  • Bind mounts can be used, use the -v option and follow these instructions:

Create a mount point on the host system:
   Example:  mkdir /home/informix/extvol

Use The Bind mount:
     docker run --name ifx -v /home/informix/extvol:/opt/ibm/data \
          -p 9088:9088 -p 9089:9089 -p 27017:27017        \
          -p 27018:27018 -p 27883:27883  informix-db
  • -v /home/informix/extvol:/opt/ibm/data This option mounts a bind mount (external mount point) (/home/informix/extvol) to a pre-defined internal volume (/opt/ibm/data)

7 - Configuration Options:

  • User Supplied ONCONFIG When -v option is used, you can specify an ONCONFIG to be used. Place a file named onconfig in the external storage volume directory on the host.

  • Update ONCONFIG When -e SIZE=custom option is used, you can specify a file that will update the ONCONFIG . Place a file named informix_config.custom in the external storage volume directory on the host.

  • sch_init When -e SIZE=custom option is used, you can specify a file that will run and perform any configuration, creation of databases, etc. Place a file named sch_init_informix.custom.sql in the external storage volume directory on the host.

  • User Supplied sqlhosts When -v option is used, you can specify an sqlhosts to be used. Place a file named sqlhosts in the external storage volume directory on the host. Below is a sample sqlhosts file. Create sqlhosts file with ${HOSTNAME} and ${INFORMIXSERVER} which are populated during setup, with any other changes you need to the sqlhosts file.

############################################################
### DO NOT MODIFY THIS COMMENT SECTION " 
### HOST NAME = ${HOSTNAME} 
############################################################
${INFORMIXSERVER}        onsoctcp        ${HOSTNAME}         9088
${INFORMIXSERVER}_dr     drsoctcp        ${HOSTNAME}         9089

8 - Data persistence:

Data is stored in volume storage so it will persist but it is recommended you use Named volumes or Bind mounts so your data is stored in a well known location.

9 - Example docker run commands:

  • Default run command with no additional options. This method stores the Informix dbspaces in an unnamed volume.
docker run -it --name ifx --privileged 
      -p 9088:9088                                  \
      -p 9089:9089                                  \
      -p 27017:27017                                \ 
      -p 27018:27018                                \ 
      -p 27883:27883                                \ 
      -e LICENSE=accept                             \
      ibmcom/informix-innovator-c:latest
  • Run command that uses external (host) directory (-v /home/informix/extvol:opt/ibm/data) for volume storage, and configures the system for oltp (-e TYPE=oltp).
docker run -it --name ifx --privileged 
      -p 9088:9088                                  \
      -p 9089:9089                                  \
      -p 27017:27017                                \ 
      -p 27018:27018                                \ 
      -p 27883:27883                                \ 
      -v /home/informix/extvol:/opt/ibm/data        \
      -e TYPE=oltp                                  \
      -e LICENSE=accept                             \
      ibmcom/informix-innovator-c:latest
  • Run command that uses external (host) directory for volume storage, and configures the system for oltp. This command limits the container to 4 cpus (--cpus="4") and the memory to 4gb (--memory="4000m").
docker run -it --name ifx --privileged 
      --cpus="4" --memory="4000m"                   \ 
      -p 9088:9088                                  \
      -p 9089:9089                                  \
      -p 27017:27017                                \ 
      -p 27018:27018                                \ 
      -p 27883:27883                                \ 
      -v /home/informix/extvol:/opt/ibm/data        \
      -e TYPE=oltp                                  \
      -e LICENSE=accept                             \
      ibmcom/informix-innovator-c:latest

10 - Update ONCONFIG:

When -e SIZE=custom option is used, you can specify a file that will update the ONCONFIG . Place a file named informix_config.custom in the external storage volume directory on the host.

There are 3 sections.

  • [UPDATE] - Updates parameters found in the $ONCONFIG file accordingly
  • [DELETE] - Deletes any parameters matching the string
  • [ADD] - Adds the specified parameter

Sample informix_config.custom

[UPDATE]
AUTO_TUNE 1
DIRECT_IO 1
DUMPSHMEM 0

[DELETE]
BUFFERPOOL

[ADD]
BUFFERPOOL size=2k,buffers=50000,lrus=8,lru_min_dirty=55,lru_max_dirty=65

License

The Dockerfile and associated scripts are licensed under the Apache License 2.0. Informix Innovator-C Edition is licensed under the IBM International License Agreement for Non-Warranted Programs. This license for Informix Innovator-C Edition can be found online for the software contained in this image. Note that this license does not permit further distribution.

Community Support

Like this image? Give us a star at the top of this page!

Docker Pull Command
Owner
ibmcom