diff --git a/source/server/firstrun.md b/source/server/firstrun.md index ef4357a..a33512b 100644 --- a/source/server/firstrun.md +++ b/source/server/firstrun.md @@ -10,9 +10,11 @@ related: - { page: "recover", title: "Recovering the SP Database" } --- # First deployment of a Spectrum Protect Server (in a container) +*Updated for Spectrum Protect 8.1.7!* + > **NOTES**: -> * The following instructions are for a Spectrum Protect 8.1.4 instance. I used the same procedure described [here](/server) to build the Docker Image. The only difference is that I performed a new install using the installation media that would be available from Passport Advantage. (Thus it was just an install, not an 8.1.0 install and followed by a 8.1.4 upgrade). -> * Make sure you follow the guidelines for space required as presented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.4/srv.install/t_srv_plan_capacity-linux.html). +> * The following instructions are for a Spectrum Protect 8.1.7 instance. I used the same procedure described [here](/server) to build the Docker Image. The only difference is that I performed a new install using the installation media from the IBM public website. (Thus it was just an install, not an 8.1.0 install and followed by a 8.1.7 upgrade). +> * Make sure you follow the guidelines for space required as presented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/t_srv_plan_capacity-linux.html). Our Docker Image will have the SP database in `/database`, the instance user in `/tsm` and storage pools in `/data`. Ultimately these will be volumes provisioned from the host and using host storage, or your preferred Docker persistent volume storage technology. > * The storage used in the example below is from the host file systems, passed to the container with Docker's `-v` option. > * This implementation is using DISK or CLOUD storage pool storage. While accessing tape should be possible, I haven't explored what is required for that to work. @@ -35,7 +37,7 @@ TSM_DATA=/srv/sp/data The first init run will be to create the database layout, and to copy the initialise database (as performed when containerising SP) onto our persistent storage. -`docker run --detach=false --hostname=tsm --interactive=false -v $TSM_USER:/tsm.init -v $TSM_DB:/database.init --privileged=true --rm=true --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.4 init1` +`docker run --detach=false --hostname=tsm --interactive=false -v $TSM_USER:/tsm.init -v $TSM_DB:/database.init --privileged=true --rm=true --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.7 init1` You wont see any output, but if you look in your $TSM_USER path, you should see the familiar TSM instance owner files (like sqllib). The $TSM_DB directory should have sub directories created for the DB2 database, active and archive logs. @@ -55,15 +57,15 @@ drwxr-xr-x 2 201 201 4096 Mar 8 14:30 tsmdb ## First Run Init #2 -The second init run will now run the post-install setup for a new environment (`dsmserv formatdb` and then create the ADMIN user). +The second init run will now run the post-install setup for a new environment (`dsmserv formatdb` and then create the ADMIN user - using the macro file added during the build). -`docker run --detach=false --hostname=tsm --interactive=false -v $TSM_USER:/tsm -v $TSM_DB:/database --privileged=true --rm=true --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.4 init2` +`docker run --detach=false --hostname=tsm --interactive=false -v $TSM_USER:/tsm -v $TSM_DB:/database --privileged=true --rm=true --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.7 init2` ```tsm Expected Output -ANR7800I DSMSERV generated at 16:03:41 on Nov 17 2017. +ANR7800I DSMSERV generated at 00:18:30 on Feb 5 2019. IBM Spectrum Protect for Linux/x86_64 -Version 8, Release 1, Level 4.000 +Version 8, Release 1, Level 7.000 Licensed Materials - Property of IBM ... @@ -79,6 +81,6 @@ ANR1912I Stopping the activity log because of a server shutdown. ANR0369I Stopping the database manager because of a server shutdown. ``` -**NOTE**: With 8.1.4 I noticed a lot of `DBI1306N` messages floating up the screen. That doesn't appear to be an actual problem. +**NOTE**: With 8.1.7 I noticed a lot of `DBI1306N` messages floating up the screen. That doesn't appear to be an actual problem. -The "Init" steps will only need to be run the once for any "new" instance of SP. Thereafter, you'll start SP using the Normal steps documented [here](normalrun.html). +The "init" steps will only need to be run the once for any "new" instance of SP. Thereafter, you'll start SP using the Normal steps documented [here](normalrun.html). diff --git a/source/server/index.md b/source/server/index.md index ec5def6..cb5621b 100644 --- a/source/server/index.md +++ b/source/server/index.md @@ -11,7 +11,9 @@ related: - { page: "runoc", title: "Running OC in a container" } --- # Putting Spectrum Protect into a Container -(These instructions as based on Spectrum Protect 8.1.1. References to *SP* means Spectrum Protect.) +*Updated for Spectrum Protect 8.1.7!* + +(These instructions as based on Spectrum Protect 8.1.7. References to *SP* means Spectrum Protect.) > **NOTES** > * Depending how your storage volumes are provisioned to running containers, you may need to increase the "default size" of a provisioned volume. @@ -26,11 +28,12 @@ related: As at the time of writing these instructions, Red Hat Linux is not available in the Docker hub - but CentOS is a good clone. We'll use it ### Image preparation + ```Dockerfile FROM centos:7 ``` -Next we need to install some dependencies - these are documented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.4/srv.install/r_srv_lnx_sysreq_inst_x-linux.html) as a requirement for running SP on Linux. You might like to check to make sure these are still all that is required for newer releases of SP. +Next we need to install some dependencies - these are documented in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/r_srv_lnx_sysreq_inst_x-linux.html) as a requirement for running SP on Linux. You might like to check to make sure these are still all that is required for newer releases of SP. ```Dockerfile RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7.centos.12.2.x86_64.rpm \ @@ -45,41 +48,49 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. ### Spectrum Protect Installation -Now copy in our silent install configuration files. These files are based on the silent install XML files that come on the installation media. Some details on these files are also in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.4/srv.install/t_srv_inst_silently-linux.html) +Now copy in our silent install configuration files. These files are based on the silent install XML files that come on the installation media. Some details on these files are also in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/t_srv_inst_silently-linux.html) + ```Dockerfile COPY install.xml install-fp.xml /tmp/ ``` -**NOTE**: We only include the silent install configuration files here - not the installation media, otherwise the size of the resulting Docker image is too big. Current versions of `docker build` do provide the ability to "flatten" the resulting container, but those instructions are outside the scope of this tutorial. -Next, is performing a silent installation of SP. + +> **NOTES** +> * We only include the silent install configuration files here - not the installation media, otherwise the size of the resulting Docker image is too big. Current versions of `docker build` do provide the ability to "flatten" the resulting container, but those instructions are outside the scope of this tutorial. +> * The `install.xml` file performs an installation of the server, with the license libraries/files. +> * The `install-fp.xml` file performs an installation of the server WITHOUT the license libraries/files. Since fixpacks (from fixpack central) dont includes the license files, we need to use this file during install of fixpacks. +> * TIP: If you download the server package from the http site (which doesnt include the license libraries/files, you can use this `install-fp.xml` file during the install to create a 90 day trial! + + +Next, is performing a silent installation of SP. ** TO UPDATE ** ```Dockerfile RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ - mkdir -p /tmp/build/8.1.0 && cd /tmp/build/8.1.0 && \ - curl -SL ${SOURCE_URL}/8.1.0 > tsm && \ - chmod +x tsm && ./tsm && rm -f tsm && \ + mkdir -p /tmp/build/base && cd /tmp/build/base && \ + curl -SL ${SOURCE_URL}/SP_8.1_LIN86_SER_STG_ML.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ ./install.sh -s -input /tmp/install.xml -acceptLicense && \ - rm -rf /tmp/build/8.1.0 && \ - mkdir -p /tmp/build/8.1.x && cd /tmp/build/8.1.x && \ - curl -SL ${SOURCE_URL}/8.1.x > tsm && \ - chmod +x tsm && ./tsm && rm -f tsm && \ + rm -rf /tmp/build/base && \ + mkdir -p /tmp/build/patch && cd /tmp/build/patch && \ + curl -SL ${SOURCE_URL}/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && \ rm -rf /tmp/build /tmp/install*xml ``` **NOTE**: Some information on what is occurring here. -* This is an "new install" (lines 1-6) then followed by an "upgrade" (lines 7-11). The reason for the new install first, is that the Spectrum Protect license files and license libraries are not available in upgrades (from Fix Central). So you'll need to install from your downloaded media from Passport Advantage, and then upgrade it to the latest release from Fix Central. - If you sourced your installation media from Passport Advantage, then the license files and libraries are probably in that installation media, so you only need to run lines 1-6. -* To avoid the resulting Docker Image being too large, we download the installation media from a web server (Line 3) and then delete it after it has been expanded (line 4). We also do the same for up upgrade package (lines 8 & 9). -* Lines 5 and 10 are silent installation methods for install SP and applying updates. -* Lines 6 and 11 delete any installation files to reduce the size of the resulting Docker Image. +* This is an "new install" (lines 1-5) then followed by an "upgrade" (lines 6-8). The reason for the new install first, is that the Spectrum Protect license files and license libraries are not available in upgrades (from Fix Central). So you'll need to install from your downloaded media from Passport Advantage, and then upgrade it to the latest release from Fix Central. + If you sourced your installation media from Passport Advantage, then the license files and libraries are probably in that installation media, you can exclude lines 6-8. +* To avoid the resulting Docker Image being too large, we download the installation media from a web server (Line 3) and then delete it after it has been expanded. We also do the same for up upgrade package (line 7). +* Lines 4 and 8 are silent installation methods for install SP and applying updates. +* Lines 5 and 9 delete any installation files to reduce the size of the resulting Docker Image. ### Spectrum Protect Post-Installation Now we set our user environment that will ultimately run SP + ```Dockerfile ENV USER=tsm USERDIR=/tsm USERID=201 GROUPID=201 ``` + **NOTE**: You can set these according to your enterprise policy. `USERDIR` will ultimately need to be persistent storage using your favourite storage provisioning methodology. I generally host mount when starting the container using `-v /host/path/user:/tsm` and it works well. I have used some 3rd party persistent storage offerings, however, they often have not worked. While I haven't explored in detail why not, I suspect it is because of Direct IO calls being made by DB2 and those 3rd party offerings not supporting those system calls. Now we create our user @@ -104,6 +115,7 @@ RUN /opt/tivoli/tsm/db2/instance/db2icrt -a server -s ese -u ${USER} ${USER} && chown ${USER}:servers /database /tsm/dsmserv.opt /tsm/tsmdbmgr.opt && \ su ${USER} -lc "db2 update dbm cfg using dftdbpath ${USERDIR} && db2set -i ${USER} DB2NOEXITLIST=ON" ``` + **NOTE**: Keep all these commands on one RUN line otherwise the `db2 update dbm` command will fail with an `SQL6031N` error. @@ -141,6 +153,7 @@ If you want your running container to be in your timezone, then add this to your RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime ``` + **NOTE**: This will set your timezone to Melbourne, Australia - naturally, choose the appropriate Country/City for your timezone. ## Build your Image @@ -151,8 +164,9 @@ If your final build is successful, you should see a Docker Image that is about 3 ```plain REPOSITORY TAG IMAGE ID CREATED SIZE -ibm/spectrumprotect 8.1.1 14aba816e231 2 minutes ago 2.96GB +ibm/spectrumprotect 8.1.7 b56baf7faab5 2 minutes ago 3.24GB ``` + **NOTES** * Make sure you have enough space in your `/var/lib/docker` directory - the build will use about 9 GB's. @@ -160,4 +174,4 @@ Now that your container is built, you'll want to start it a specific way, depend # Trying out a container image -If you are interested, the SP server (without license files) is available on the IBM FTP site. I've put together the instructions on how to build this server image (v8.1.5) or use my already made image. Those details are [here](/server/registry.html). +If you are interested, the SP server (without license files) is available on the IBM FTP site. I've put together the instructions on how to build this server image (v8.1.7) or use my already made image. Those details are [here](/server/registry.html). diff --git a/source/server/normalrun.md b/source/server/normalrun.md index 83e0eb8..144a337 100644 --- a/source/server/normalrun.md +++ b/source/server/normalrun.md @@ -10,8 +10,11 @@ related: - { page: "recover", title: "Recovering the SP Database" } --- # Normal Run of a Spectrum Protect Server (in a container) +*Updated for Spectrum Protect 8.1.7!* + > **NOTES**: > * The storage used in the example below is from the host file systems, passed to the container with Docker's `-v` option. +> * The host was using glusterfs for the persistent storage. That same filesystem is available on mulitple docker nodes, which means I would now have a Spectrum Protect server that could float between nodes if needed! > * This implementation is using DISK or CLOUD storage pool storage. While accessing tape should be possible, I haven't explored what is required for that to work. ## Configuration @@ -32,13 +35,13 @@ TSM_DATA=/srv/sp/data Starting SP for normal operations. -`docker run --detach=true --hostname=tsm --interactive=false -v $TSM_USER:/tsm -v $TSM_DB:/database -v $TSM_DATA:/data --memory=16g -p 1500:1500 -p 1543:1543 --privileged=true --rm=false --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.4` +`docker run --detach=true --hostname=tsm --interactive=false -v $TSM_USER:/tsm -v $TSM_DB:/database -v $TSM_DATA:/data --memory=16g -p 1500:1500 -p 1543:1543 --privileged=true --rm=false --restart=no --tty=false --name=spectrumprotect ibm/spectrumprotect:8.1.7` ```tsm Expected Startup, viewable by doing docker log -f spectrumprotect -ANR7800I DSMSERV generated at 16:03:41 on Nov 17 2017. +ANR7800I DSMSERV generated at 00:18:30 on Feb 5 2019. IBM Spectrum Protect for Linux/x86_64 -Version 8, Release 1, Level 4.000 +Version 8, Release 1, Level 7.000 Licensed Materials - Property of IBM ... @@ -62,3 +65,11 @@ You should now be able to connect with the Admin Client. * You should be able to run many SP instances on the same host (or swarm) even at different version levels. In container, they can all respond to port 1500, and outside the container, they'll need to have unique ports EG: `-p 1501:1500`, `-p 1502:1500`, etc. (Just remember to think about resource requirements and potential resource contention.) * Use the same `--hostname=` setting that you used when running the *init* steps above. DB2 is sensitive to hostname changes. * Spectrum Scale makes a great persistent storage file system for Docker containers, and gives you great options for Spectrum Protect. For example, you could move SP to different hosts very easily (stop on hosta, start on hostb - if both hosts see the same Spectrum Scale file system and your database/data are on it). + +# Shutting down Spectrum Protect + +By Default when you issue a `docker stop` command, docker, gives the container 10 seconds (the default) for all processes to exit. If, that hasnt happened, then the docker host will send a `SIGKILL` to all the processes left. + +Spectrum Protect will correctly handle the `SIGTERM` sent by docker, but it may take more than 10 seconds to shutdown. You can start your container with a `--stop-timeout` set to a larger value, if you want docker to shutdown Spectrum Protect. + +Instead, of usng docker stop, I **strongly** recommend you connect with the admin client, and issue `HALT` instead. This way, you can make sure that Spectrum Protect is not doing something important first (using `Q SESSION` or `Q PROCESS`). When Spectrum protect has finished halting, the container will stop. diff --git a/source/server/registry.md b/source/server/registry.md index 51bc0f0..4535614 100644 --- a/source/server/registry.md +++ b/source/server/registry.md @@ -7,11 +7,12 @@ related: - { page: "normalrun", title: "Normal Run of Container" } --- # Spectrum Protect Server +*Updated for Spectrum Protect 8.1.7!* ```Dockerfile Server Dockerfile # NAME deon/spdocker/server -# VERSION 8.1.5 -# BUILD docker build -t="deon/spdocker/server:8.1.5" . +# VERSION 8.1.7 +# BUILD docker build -t="deon/spdocker/server:8.1.7" . # Since SP is supported on RHEL and its not available in docker, we'll use CentOS. FROM centos:7 @@ -22,12 +23,12 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. # Installation COPY install.xml install-fp.xml /tmp/ -# Download ftp://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.5.000/x86_64/8.1.5.000-IBM-SPSRV-Linuxx86_64.bin to a local server. -RUN SOURCE_URL=http://SOURCE_URL && \ - mkdir -p /tmp/build && cd /tmp/build && \ - curl -SL ${SOURCE_URL}/8.1.5.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ - ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && \ - rm -rf /tmp/build /tmp/install*xml +# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.7.000/x86_64/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). +RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ + mkdir -p /tmp/build && cd /tmp/build && \ + curl -SL ${SOURCE_URL}/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ + ./install.sh -s -input /tmp/install-fp.xml -acceptLicense && \ + rm -rf /tmp/build /tmp/install*xml # Dont forget to change the user in the init file too ENV USER=tsm USERDIR=/tsm USERID=201 GROUPID=201 @@ -66,16 +67,17 @@ RUN ln -sf /usr/share/zoneinfo/Australia/Melbourne /etc/localtime **NOTES**: * I use the install-fp.xml which doesnt install the license libraries - since they are not available in the public download. -* You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/server:8.1.5` to get it - feel free to try it. +* You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/server:8.1.7` to get it - feel free to try it. * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/master) # Spectrum Protect Operations Center ```Dockerfile Operations Center Dockerfile # NAME deon/spdocker/oc -# VERSION 8.1.5 -# BUILD docker build -t="deon/spdocker/oc:8.1.5" . +# VERSION 8.1.7 +# BUILD docker build -t="deon/spdocker/oc:8.1.7" . +# Since SP is supported on RHEL and its not available in docker, we'll use CentOS. FROM centos:7 # OS Installation Prerequisites @@ -84,12 +86,12 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. COPY install-oc.xml /tmp/ # Installation +# Download http://public.dhe.ibm.com/storage/tivoli-storage-management/maintenance/server/v8r1/Linux/8.1.7.000/x86_64/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin to a local server (otherwise it will be slow). RUN SOURCE_URL=http://SOURCE_URL && \ - mkdir -p /tmp/build && cd /tmp/build && \ - curl -SL ${SOURCE_URL}/8.1.5-nl > tsm && \ - chmod +x tsm && ./tsm && rm -f tsm && \ - ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \ - rm -rf /tmp/build /tmp/install*xml + mkdir -p /tmp/build && cd /tmp/build && \ + curl -SL ${SOURCE_URL}/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ + ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \ + rm -rf /tmp/build /tmp/install*xml COPY init /sbin/ @@ -103,5 +105,5 @@ RUN sed -i 's#^installPath=#installPath=/opt/tivoli/tsm/ui#' /opt/tivoli/tsm/ui/ ``` **NOTES**: -* You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/oc:8.1.5` to get it - feel free to try it. +* You'll find this image in my registery, you can `docker pull registry.leenooks.net/deon/spdocker/oc:8.1.7` to get it - feel free to try it. * The supporting files are in my [gitlab](http://dev.leenooks.net/deon/spdocker/tree/oc) diff --git a/source/server/runoc.md b/source/server/runoc.md index d99fa44..b16ab00 100644 --- a/source/server/runoc.md +++ b/source/server/runoc.md @@ -23,7 +23,7 @@ As at the time of writing these instructions, Red Hat Linux is not available in FROM centos:7 ``` -Operations Centre doesn't really need any dependencies - you can check the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.4/srv.install/c_oc_inst_reqs_os.html) for any updates. However, to pass the installation logic, we do need to have a redhat-release RPM installed. For CentOS it doesn't exist (CentOS calls it centos-release), so I created one. +Operations Centre doesn't really need any dependencies - you can check the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/c_oc_inst_reqs_os.html) for any updates. However, to pass the installation logic, we do need to have a redhat-release RPM installed. For CentOS it doesn't exist (CentOS calls it centos-release), so I created one. ```Dockerfile RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7.centos.12.2.x86_64.rpm \ @@ -38,7 +38,7 @@ RUN yum -y install http://yum.leenooks.net/CentOS/7/base/redhat-release-7-6.el7. ### Operations Centre Installation -Now copy in our silent install configuration files. These files are based on the silent install XML files that come on the installation media. Some details on these files are also in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.4/srv.install/t_srv_inst_silently-linux.html) +Now copy in our silent install configuration files. These files are based on the silent install XML files that come on the installation media. Some details on these files are also in the [Knowledge Center](https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.7/srv.install/t_srv_inst_silently-linux.html) ```Dockerfile COPY install.xml install-fp.xml /tmp/ @@ -49,17 +49,16 @@ Next, is performing a silent installation of SP. ```Dockerfile RUN SOURCE_URL=http://YOUR_SITE_URL_HERE && \ - mkdir -p /tmp/build && cd /tmp/build && \ - curl -SL ${SOURCE_URL}/8.1.1 > tsm && \ - chmod +x tsm && ./tsm && rm -f tsm && \ - ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \ - rm -rf /tmp/build /tmp/install*xml + mkdir -p /tmp/build && cd /tmp/build && \ + curl -SL ${SOURCE_URL}/8.1.7.000-IBM-SPSRV-Linuxx86_64.bin > tsm && chmod +x tsm && ./tsm && rm -f tsm && \ + ./install.sh -s -input /tmp/install-oc.xml -acceptLicense && \ + rm -rf /tmp/build /tmp/install*xml ``` **NOTE**: Some information on what is occurring here. -* To avoid the resulting Docker Image being too large, we download the installation media from a web server (Line 3) and then delete it after it has been expanded (line 4). -* Line 5 is the silent installation method for installing SP components. -* Line 6 deletes any installation files to reduce the size of the resulting Docker Image. +* To avoid the resulting Docker Image being too large, we download the installation media from a web server (Line 3) and then delete it after it has been expanded. +* Line 4 is the silent installation method for installing SP components. +* Line 5 deletes any installation files to reduce the size of the resulting Docker Image. And our final Docker Image settings for when our container starts. @@ -74,16 +73,16 @@ CMD [ "start" ] A complete Dockerfile is available [here](http://dev.leenooks.net/deon/spdocker/blob/oc/Dockerfile) if you need one as a starting point. Once you have your images loaded on a web server, and the supporting build files run `docker build -t ibm/spectrumprotect-oc:8.1.x .` -If your final build is success, you should see a Docker Image that is nearly 1GB. +If your final build is success, you should see a Docker Image that is about 1GB. ```plain REPOSITORY TAG IMAGE ID CREATED SIZE -ibm/spectrumprotect-oc 8.1.1 5110bce0e6a7 1 minutes ago 973MB +ibm/spectrumprotect-oc 8.1.7 cf10a5a9a401 1 minutes ago 1.03GB ``` Now that your container is built, starting OC is simple -`docker run --detach=true --interactive=false --link=spectrumprotect -v /serverConnection.properties:/opt/tivoli/tsm/ui/Liberty/usr/servers/guiServer/serverConnection.properties --memory=1g -p 11443:11443 --privileged=false --rm=false --restart=no --tty=false --name=spectrumprotectoc ibm/spectrumprotect-oc:8.1.1` +`docker run --detach=true --interactive=false --link=spectrumprotect -v /serverConnection.properties:/opt/tivoli/tsm/ui/Liberty/usr/servers/guiServer/serverConnection.properties --memory=1g -p 11443:11443 --privileged=false --rm=false --restart=no --tty=false --name=spectrumprotectoc ibm/spectrumprotect-oc:8.1.7` ***NOTES***: * The OC container needs to connect to your SP server(s). If your SP server is running in a container, you can use the `--link=` to link to the container name of your server (not necessarily required). If you are running your container in a cluster (EG: Docker Swarm), then you'll need to use the appropriate configuration for your cluster to do container-to-container networking.