The Ops Community ⚙️

Cover image for Docker Container Manipulation Part-I
Akshay Rao
Akshay Rao

Posted on

Docker Container Manipulation Part-I

Introduction

I am Akshay Rao working in Annotation.Inc. I tried different container manipulations in this blog.
I have used Go app for demonstration purposes.

How to Run a Container
The “docker run” command is used to start a container using images.
I used docker run "image name" command which has generic syntax but the actual syntax is
Docker "object" "command" "options"

  1. Object - describes which docker object will be manipulated
  2. Command - task that the docker deamon will be assigned
  3. Options - parameter which will overrule the defaults behaviour of the command.

docker container run --publish 8080:8080 aksrao1998/first-go-project

How to Publish a Port
syntax:- —publish "host port":"container port"
To publish port I used —publish or -p option and binding the container port 8080 with host system 8080.
The app will be accessed in localhost:8080
To stop the container close the terminal window or press ctrl+c

How to Use Detached Mode
The container stops when the terminal window is closed. This is because, by default the container that are ran in foreground are attached to the terminal.
So in-order to run the container separately detach option is used.
This a very famous options —detach or -d

Example:- docker container run —detach —publish 8080:8080 aksrao1998/first-go-project

docker container run -d -p 8080:8080 aksrao1998/first-go-project
6360b3c15f34b8dc605079cfd1c58f9e4ea9c900d4307bab5fafe766c4623451
Enter fullscreen mode Exit fullscreen mode

The order of the options provided doesn’t matter, but make sure that the options are written before image name, anything written after image name is considered as an argument.

How to List Containers

docker container ls

CONTAINER ID   IMAGE                            COMMAND          CREATED         STATUS           PORTS                       NAMES
6360b3c15f34   aksrao1998/first-go-project   "/app/project"   5 minutes ago   Up 5 minutes   0.0.0.0:8080->8080/tcp   affectionate_hertz
Enter fullscreen mode Exit fullscreen mode

Container ID is provide as it is 64 character long but for display only first 12 characters are displayed.
Name is automatically assigned by the daemon, we can also manually assign name to the container for better observer ability .

Image 1
How to Name or Rename a Container
Every container has two identifiers

  1. Conatiner ID - a random 64 character-long string
  2. Name:- combination of two random words, joined with underscore

—name option can be used while running a container

To rename the container use container rename
Syntax- docker container rename "container identifier" "new name"

docker rename affectionate_hertz akshay_rao
docker container ls

CONTAINER ID   IMAGE                          COMMAND          CREATED          STATUS            PORTS                  NAMES
6360b3c15f34   aksrao1998/first-go-project   "/app/project"   19 minutes ago   Up 6 seconds   0.0.0.0:8080->8080/tcp   akshay_rao
Enter fullscreen mode Exit fullscreen mode

How to Stop or Kill a Running Container
The container can be stoped by closing the terminal window or ctrl+c.
But for those container which are detach options need to use container stop command.
Syntax:- docker container stop “identifier”
Example-

docker container stop akshay_rao
Enter fullscreen mode Exit fullscreen mode

This command sends SIGTERM signal to shutdown the container properly, if the container doesn’t stop within certain time than SIGKILL signal is sent to shutdown immediately.
To kill the container directly kill command can be used.
Syntax- docker container kill "identifier"

docker container kill akshay_rao
Enter fullscreen mode Exit fullscreen mode

Conclusion
I have introduced the basic manipulation like running, publishing, detaching, renaming and terminating the containers.
I hope that this helps in managing docker containers and stay tuned for Part-II.
How do you think about the blog?
pls comment and share
Thank you

Top comments (0)