In this iteration the team is planning to upgrade Docker to the latest stable release on all of the POC hosts, as well as, the build/package server. In order to do this, the Systems team will have to deviate from the Red Hat packaged Docker, which is not currently supporting Docker 1.9.x. Once the infrastructure has been upgraded, the team will build a Docker Swarm using the three docker-web hosts. Once the Swarm is up and running, we will design an application to test various deployment scenarios. For example, we will attempt to test communication across multiple hosts using Docker's new network overlay features. Additionally, we will test Docker's ability to scale out services across multiple hosts.
Also in this iteration, the team will begin looking into the workflow associated with moving code through the various software development lifecycle steps. The team will research options for storing configuration information. For example, if we use different databases for different environments, do we have to have a separate Dockerfile/image for each environment? Or, is this information passed in as environmental variables or configuration files? The team will report back on the security implications associated with the various approaches. As part of this research, the team will also look at how a tool like Jenkins could be coupled with Docker to automate parts of the workflow and assist with deploying an application into each dev/test/prod environment.
1 – Information about all the successive layers from a Docker image can be obtained using dfimage (3rd party tool) or by analyzing the images in Docker hub.
2 – In order to protect sensitive information we can use docker-compose:
[root@docker-web1 ~]# docker-compose -v
docker-compose version 1.5.2, build 7240ff3
3 – Docker-compose uses docker-compose.yml as its configuration file.
Information that can be added to docker-compose.yml is shown below:
Add environment variables. You can use either an array or a dictionary.
Environment variables with only a key are resolved to their values on the machine Compose is running on, which can be helpful for secret or host-specific values.
Add environment variables from a file. Can be a single value or a list.
Environment variables specified in environment override these values.
4 – Following the creation of docker-compose.yml, we run:
5 – We then run: