Managing Containers

We build images based on commands we give in the Docker file.




A Docker file is the text file that builds Docker images. This text file contains particular instructions about the container. To build a Docker file, follow the steps below.


For example,

FROM node --> from official node image in docker hub(this will be the base image)


WORKDIR ./app --> this will be the working directory of all containers built on the image, i.e. all, run, copy commands will be executed in the working directory


COPY package.json /app --> From where To where


RUN npm install --> install all the packages in package.json


COPY . /app --> copy all the folders in the current directory in the local machine to the container working directory(app)


CMD ['node','filename.js'] --> this statement will only get executed when we create container. The main purpose of the CMD command is to launch the software required in a container


Docker commands: What we type in the command prompt:


To create an image --> docker build.


Any command with --help will give you all associated commands with a description


We build containers based on image --> docker run <image_name>

docker run <image_name> will create new container based on image.


What if we want to start an existing container?

Use docker start <container_name>

Use docker stop <container_name>


There are two modes - attached(console.log is displayed) and detached mode(console.log is not displayed)

docker run <image_name> --> creates new container and prints all console.logs -->default is attach mode.


docker run -d <image_name> --> Run the container in detached mode - i.e., output printed by the container is not visible, the command prompt/terminal does NOT wait for the container to stop.


docker start <container_name> --> starts already existing and stopped container with default of detach mode(no console.log printed)


docker start -a <container_name> --> for attached mode


We can make it interactive(use giving input in terminal) through the -i flag before


Deleting images and containers


docker ps --> list all running container

docker ps -a --> list all running and stopped containers

docker images --> list al locally stored images

docker rm <container_name> --> removes the container

docker rmi <image_name> --> remove the image

One thing to note in removing images is that it does not have any containers including a stopped ones


Naming Image and Container

When we name a container, it is called Name, but it is called Tag when we name an image.

Tag consist of two parts - name:tag --> node(name):14(version)