Docker Compose
Docker compose is a simple way to build multiple containers together: https://docs.docker.com/compose/compose-file/
Example WAS-based compositions: https://github.com/kgibm/websphere_docker_examples
docker-compose.yml
The docker-compose.yml file describes how to build and wire together multiple containers. In the following example, there is a container that's logically called "app" with a Dockerfile in the "./was" sub-folder and this type of container will expose port 9443 to other containers, and there is a container that's logically called "proxy" with a Dockerfile in the "./nginx" sub-folder and this type of container will expose port 80 to the host, and it "depends_on" the "app" container(s) so that proxy is only started after app:
version: "3"
services:
app:
build:
context: was
dockerfile: Dockerfile
expose:
- "9443"
environment:
- ENABLE_BASIC_LOGGING=true
proxy:
build:
context: nginx
dockerfile: Dockerfile
ports:
- "80:80"
depends_on:
- app
docker-compose build
The docker-compose build
command builds all of the
container Dockerfiles in the docker-compose.yml file. This should be run
any time any of the Dockerfiles are changed.
docker-compose up
The docker-compose up
command starts all of the
containers in the docker-compose.yml file. Multiple instances of a
particular service may be started. For example:
docker-compose up --scale app=2
Use the -d
parameter to start everything in the
background. For example:
docker-compose up --scale app=2 -d
docker-compose logs
If starting in the background, tail the logs after starting:
docker-compose logs -t -f
docker-compose down
The docker-compose down
command stop all of the
containers in the docker-compose.yml file. This is normally run after
typing Ctrl^C in the $(docker-compose up) window.
docker-compose rm
The docker-compose rm
command deletes stopped
containers.