docker-based-development-guide/README.md

2.3 KiB

README

This repository is a playground for practising docker based programming following docker-development-youtube-series

Three Problems for docker beginner

  1. Programmer need be able to navigate through windows/mac/linux OS using cmd line fluently:
    1. ls/dir for list files
    2. cd for move through file systems
  2. Working Directories
    1. Show current working directory echo $PWD
    2. Don't hardcode path to file in docker files
  3. Understand docker volume docker run -v hostPath:containerPath
    1. e.g. docker run -it -v $PWD:/work -w /work alpine:3.9 /bin/sh

dockerfile

Before bring up docker container, we need first create dockerfile to describe the image that we want to use to create containers.

For different languages, c#, golang & python each has a separate dockerfile. Each describe the complete environment can be used to develop corresponding programs

Docker compose

Compose is an orchestration tool that used to spinning up multi-container distributed applications, it shipped with Docker by default. It's not ideal for large system setup, but great for development purpose and testing

It's easy to define a multi-container app and accompanying services using one single file, and start it using single command. We can also build/push images to registry using docker-compose

The compose file is docker-compose.yaml in PWD

  • Build image individually: docker-compose build <service_name>
  • Build all images: docker-compose build

Create & Push images built from docker-compose

  1. Create image using docker-compose.yaml & Dockerfile
    1. Write Dockerfile and docker-compose.yaml
    2. Create image: docker-compose build first-public-dockerhub-image where
      1. first-public-dockerhub-image is the service name of the image
  2. Login Docker hub
    1. docker login, without specify server address, it automatically connect to DockerHub
    2. Enter Username & Password
    3. Now computer has login DockerHub successfully
  3. Go to Docker hub, create the first-public-dockerhub-image repository
  4. Go to command line, push the image docker push cruxligh/first-public-dockerhub-image

References:

  1. How to register a dockerhub registry: Docker Hub QuickStart