The Story Continues
Following on from the last post, today we cover docker-compose to allow for easier deployment of docker images and configurations. As from my previous post you may want to indulge in the same reading I did here.
Past those nice formalities, I find myself missing something… I’m not sure what it could be… oh yeah…. dependencies!
Can I use apt-get?
Would seem like it… but
IT’s outdated… 😀
Other way is via pip or the intended way…
Working with Docker-Compose
docker-compose ps— lists all the services in a network. This is especially helpful when troubleshooting a service as it will give you the container ID and you can then run
docker -it exec <ID> bashto enter the container and debug as needed.
docker-compose build— generates any needed images from custom
Dockerfiles. It will not pull images from the Docker hub, only generate custom images.
docker-compose up— brings up the network for the services to run in
docker-compose stop— stops the network and saves the state of all the services
docker-compose start— restarts the services and brings them back up with the state they had when they were stopped
docker-compose down— burns the entire Docker network with fire. The network and all the services contained within are totally destroyed.
How to Docker-Compose?
The last big question is: how to write a
docker-compose.yml, and it’s actually very easy and follows a standard formula.
Here is a template of what any
docker-compose.yml will look like.
- Sample Docker Compose Template
version: "2" services: <name_of_service>: build: <path_to_dockerfile> OR image: <name_of_image:version> enviroment: - "ConfVar:value" - "homeDir:/home/dir" ports: - "[HostPort]:[ContainerPort]" - "80:80" volumes: - /path/container/will/use
docker-compose file will start with a minimum of
version: "2", if you’re doing a Docker Swarm file it will need
version: "3", but for a single
docker-compose.yml, you’ll need v2.
I’m gonna keep this post short and use examples of these first two blogs it part 3. Where I setup and configure the first container in the BELK Stack; Elasticsearch.
See you all at part 3! 😀