Docker Notes Sept 2025

DevOps

MOTOSHARE 🚗🏍️
Turning Idle Vehicles into Shared Rides & Earnings

From Idle to Income. From Parked to Purpose.
Earn by Sharing, Ride by Renting.
Where Owners Earn, Riders Move.
Owners Earn. Riders Move. Motoshare Connects.

With Motoshare, every parked vehicle finds a purpose. Owners earn. Renters ride.
🚀 Everyone wins.

Start Your Journey with Motoshare

Day 1

What is Docker?
	Container mgmt. tool
	release
		community  - 
		enterprise - 
	Go 
	1.26

What is COntainer?

Mgmt
	create -> start -> stop -> restart -> kill -> remove
tools
	save cost
	save time

Docker Component
==============================================
1. Docker Engine

2. Docker Image == App

3. Registry - hub.docker.com

4. Run the image --> Container

===================================================
Docker Architecture
=============================================================



HUMAN ---> Docker Client ------------REST API-----------> Docker Daemon(Server) ----> ContainerD --> Kernel
	 =========================================================================
					docker engine

   12  ls
   13  which docker
   14  which dockerd
   15  ps -eaf | grep dockerd
   16  which containerd
   17  ps -eaf | grep containerd
   18  clear
   19  docker info
   20  clear
   21  docker version
   22  clear
   23  docker images
   24  docker ps
   25  docker ps -a
   26  dicker images
   27  docker images
   28  docker pull httpd
   29  clear
   30  docker images
   31  clear
   32  ls
   33  docker ps
   34  docker create httpd
   35  docker ps
   36  docker ps -a
   37  docker create --name raj1 httpd
   38  docker ps -a
   39  docker create httpd
   40  docker ps -a
   41  docker start 112bdde76185
   42  docker ps -a
   43  docker start a59132c11efe
   44  docker ps -a
   45  docker stop raj1
   46  docker ps -a
   47  docker restart a59132c11efe
   48  docker ps -a
   49  docker kill 112bdde76185
   50  docker ps -a
   51  docker rm 112bdde76185
   52  docker ps -a


Reference
- https://www.devopsschool.com/blog/how-to-install-docker-in-linux/
- https://www.devopsschool.com/blog/lifecycle-of-docker-containers/


Code language: JavaScript (javascript)

=========================================================================================

How to use container?
=============================
Go insider a container using exec
exec - it would exectute inside a container

$ docker exec -it contid /bin/bash
 71  docker ps
   72  docker exec 814aa598e526 ls
   73  docker exec 814aa598e526 du
   74  docker exec -it 814aa598e526 /bin/bash

Access a container using Network

   79  docker inspect 814aa598e526
   80  docker ps
   81  docker inspect c6f27d85206a
   82  curl http://172.17.0.5
   83  docker ps
   84  curl http://172.17.0.6

======================================================================
PHYSICAL 			VM SERVER			Container
=============================================================================
Is running 			Is running			is running
as long as 			as long as			as long as 
PID 1 is running		PID 1 is running		PID 1 is running

KERNEL				KERNEL				ANYTHNG - java, py, bash, any cmd tool
========================================================================
run
=============================================
pull + create + start + ATTACHED TO a PID1 of a container

run -d
pull + create + start + DO NOT ATTACHED TO a PID1 of a container


98  docker run httpd
   99  docker run -d httpd
  100  docker ps -a
  101  clear
  102  ls
  103  docker ps -a
  104  docker container stop $(docker container ls -aq)
  105  docker container prune
  106  clear
  107  docker ps -a
  108  docker run ubuntu
  109  docker  ps -a
  110  docker run -d ubuntu
  111  docker  ps -a
  112  docker run -it ubuntu
  113  docker  ps -a

==========================How to access container from outside================
  117  docker ps
  118  docker run -d httpd
  119  docker ps
  120  docker inspect 2d34bcc061ff
  121  curl http://172.17.0.2
  122  clear
  123  docker run -d -p 80:80 httpd
  124  docker ps
  125  docker run -d -p 80:80 httpd
  126  docker run -d -p 81:80 httpd
  127  docker run -d -p 82:80 httpd

http://43.204.150.25:82/
http://43.204.150.25:81/
http://43.204.150.25:80/

=================================================================
Each container
		PID
		NET
		MNT -- RFS
		USER

$ docker run -it ubuntu

  1  ps -eaf
    2  ip a
    3  ifconfig
    4  apt update
    9  sudo apt install iproute2
   10  apt install iproute2
   11  clear
   12  ip a
   13  df -kh
   14  ls /
   15  ls
   16  w
   17  id
   18  history

Code language: JavaScript (javascript)

 135  docker run -h
  136  docker run --help
  137  clear
  138  history
  139  docker container stop $(docker container ls -aq)
  140  docker container prune
  141  clear
  142  ls
  143  docker ps
  144  docker attach c4c6afa22b44
  145  clear
  146  docker ps
  147  ls
  148  clear
  149  touch rajesh.txt
  150  ls
  151  docker ps
  152  docker cp rajesh.txt 8cc8f3eb236c:/tmp
  153  docker exec 8cc8f3eb236c ls /tmp
  154  clear
  155  docker ps
  156  docker diff 8cc8f3eb236c
  157  clear
  158  docker ps
  159  docker pause 8cc8f3eb236c
  160  docker ps
  161  docker unpause 8cc8f3eb236c
  162  docker ps
  163  docker stats
  164  clear
  165  docker port
  166  docker ps
  167  docker port 609f621bb16f
  168  docker rename 609f621bb16f rajesh2
  169  docker port 609f621bb16f
  170  docker ps
  171  clear
  172  docker ps
  173  docker run --help
  174  cleare
  175  clear
  176  docker update --help
  177  clear
  178  docker ps
  179  docker wait a9445c462189
  180  clear
  181  docker ps
  182  docker logs 8cc8f3eb236c
  183  docker inspect 8cc8f3eb236c
  184  clear
  185  docker logs 8cc8f3eb236c
  186  curl http://172.17.0.32
  187  docker logs 8cc8f3eb236c
  188  curl http://172.17.0.32
  189  docker logs 8cc8f3eb236c
  190  docker stats
  191  docker stats 8cc8f3eb236c
  192  docker run -itd httpd
  193  history
  194  docker container stop $(docker container ls -aq)
  195  docker container prune
  196  history
Code language: PHP (php)

Reference – https://www.devopsschool.com/blog/the-docker-command-line-complete-referenece/

Day 2

What is Docker?
What is Container?
How container works?
Docker install
Container workflow
=========================

create -> start -> stop -> res -> pau -> upa -> kill -> remo
================================================================

What is Docker image?
===================================
TYPES FILESYSTEM
==============================
BOOT + ROOT + USER + APP

VM Image == BOOT + ROOT + USER + APP

	   kernel + Linux/win + rajesh + java + jenkins
Docker image
	ROOT + USER + APP

	ubuntu + raj			--- ubuntu
	ubuntu + raj + java		== java
	ubuntu + raj + java + tomcat + Jenkins == jenkins
	centos
	fedora
	deb
	sus
	win19
	win22
===================================================================
 694  docker container stop $(docker container ls -aq)
  695  docker container prune
  696  history
  697  clear
  698  ls
  699  clear
  700  ls
  701  docker ps -a
  702  docker stop $(docker ps -aq)
  703  docker rm -f $(docker ps -aq)
  704  clear
  705  docker ps
  706  docker ps -a
  707  docker images
  708  docker rmi $(docker images -a -q)
  709  clear
  710  ls
  711  docker ps -a
  712  docker images
  713  docker rmi $(docker images -a -q)
  714  docker ps -a
  715  docker rmi a542858eb092
  716  docker rmi mongo:8.0.13-noble
  717  docker rmi mongo:noble
  718  docker rmi $(docker images -a -q)
  719  clear
  720  docker images
  721  docker info
  722  cd /var/lib/docker
  723  clear
  724  ls
  725  docker info
  726  ls
  727  clear
  728  ls
  729  cd overlay2
  730  ls
  731  pwd
  732  docker pull ubuntu
  733  ls
  734  cd 1da39e8b7b5fcac1f87895c6163b427e635095a06828b12be19ec91264c9048c
  735  ls
  736  cd diff/
  737  ls
  738  clear
  739  ls
  740  cd ..
  741  ls
  742  cd ..
  743  ls
  744  docker rmi ubuntu
  745  ls
  746  docker pull httpd
  747  ls
  748  clear
  749  ls
  750  docker inspect httpd
  751  clear
  752  ls
  753  clear
  754  ls
  755  docker images
  756  docker run -d httpd
  757  ls
  758  du -sh e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf-init
  759  du -sh e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf
  760  cd e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf
  761  ls
  762  cd merged/
  763  ls
  764  df -kh
  765  clear
  766  ls
  767  cd ..
  768  ls
  769  docker ps
  770  docker stop 1c032ccbccb3
  771  ls e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf
  772  docker start 1c032ccbccb3
  773  ls e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf
  774  docker stop 1c032ccbccb3
  775  ls e6ebd5090290ef6dc49761033c60ccb18f7b4b5291d3490b82c138c50cfe9ddf
  776  df -kh
  777  docker start 1c032ccbccb3
  778  df -kh
  779  clear
  780  ls
  781  docker ps
  782  docker exec 1c032ccbccb3 touch /tmp/rajesh.txt
  783  docker exec 1c032ccbccb3 ls /tmp
  784  find . -name rajesh.txt
  785  docker stop 1c032ccbccb3
  786  find . -name rajesh.txt
  787  docker stoart 1c032ccbccb3
  788  docker start 1c032ccbccb3
  789  find . -name rajesh.txt
===============================================================================================
How to create a Docker images?
=====================================================
Lazy way --- Manual way -- easy way USING Existing Container
CI way --- Auto way -- easy way USING dockerfile
==================================================================
Name == repo name == motoshare
Base - ubuntu 
	git 
	  apache
		index.html
=========================================
5 mins

 790  history
  791  clear
  792  docker images
  793  cd
  794  docker run -itd ubuntu
  795  docker ps
  796  docker exec -it cedc2db4f10a /bin/bash
-----------inside a container--------------------
apt-get update
apt-get install git -y
apt-get install apache2 -y
------------------------------------------------

  797  vi index.html
  798  docker ps
  799  docker cp index.html cedc2db4f10a:/var/www/html
  800  docker ps
  801  docker exec cedc2db4f10a git
  802  docker exec cedc2db4f10a which apache2
  803  clear
  804  docker ps
  805  docker commit -m"ub-ap-git" -a"Rajesh Kumar" cedc2db4f10a ub-ap-git
  806  docker images
  807  docker history ubuntu
  808  docker history ub-ap-git
  809  docker images
  810  docker run -itd ub-ap-git
  811  docker ps
  812  docker exec e6659e128430 git
  813  docker exec e6659e128430 which apache2
  814  docker exec e6659e128430 ls /var/www/html
  815  history


Code language: JavaScript (javascript)
===================================================

dockerfile
==================================
a file
	contains
		INSTRUCTIONS
		???

FROM ubuntu
MAINTAINER rajeshkumar devops@rajeshkumar.xyz
ARG user=rajesh
RUN apt-get update
RUN apt-get install git -y
RUN apt-get install apache2 -y
RUN useradd $user
USER $user
ENV JENKINS_HOME /var/jenkins_home

docker build -t rajesh1 .

Reference
- https://www.devopsschool.com/blog/example-and-sample-programs-of-dockerfile/

NEXT.........................
ENTRYPOINT 
CMD
Code language: PHP (php)

NEXT.........................
ENTRYPOINT 
CMD

===============================================
ENTRYPOINT
or
CMD
or 
BOTH
==================================
Container is running as long as PID 1 is running.
PID 1 can be any thing

How to set PID 1?
ENTRYPOINT
or
CMD


ENTRYPOINT ["/bin/tini", "--", "/usr/local/bin/jenkins.sh"]

CMD ["/bin/bash"]

===================================
ENTRYPOINT can not be replaced
CMD can be replaced

2 ENTRYPOINT --> LAST ONE WOULD TAKE
2 CMD ----> LAST ONE WOULD TAKE
1 ENTRYPOINT 1 CMD ---->
	PID 1 -- ENTRYPOINT + CMD

["/bin/tini", "--", "/usr/local/bin/jenkins.sh", ls]

=============================
PID from BASE IMAGE
=================================================
Docker Volume
==============================================================
Container are EMP*
How to make Data of container PERSIS*
============================================
ANSWER - volume
=====================================
Types of volume or location
---- /var/lib/docker/volumes
--- Any path in host
--- memory



 895  docker volume prune
  896  clear
  897  ls
  898  pwd
  899  ls
  900  pwd
  901  clear
  902  ls
  903  docker volume
  904  docker volume ls
  905  docker volume create dev
  906  docker volume ls
  907  ls
  908  docker run -itd -v dev:/tmp/raju ubuntu
  909  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 ls /tmp
  910  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 touch /tmp/rajesh.txt
  911  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 ls /tmp
  912  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 touch /tmp/raju/rajesh.txt
  913  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 ls /tmp/raju
  914  ls
  915  ls dev/_data/rajesh.txt
  916  touch dev/_data/raju.txt
  917  docker exec 31e5bc1ecd268fb7f2279dd390a930602962889c346e163fdd36480890bbef96 ls /tmp/raju
  918  clear
  919  docker ps
  920  docker stop 31e5bc1ecd26
  921  docker rm 31e5bc1ecd26
  922  touch dev/_data/raju.txt
  923  touch dev/_data/
  924  ls dev/_data/
  925  docker run -itd -v dev:/tmp/raju ubuntu
  926  docker run -itd -v /opt/rajesh:/tmp/raju ubuntu
  927  ls /opt/

Reference
- https://www.devopsschool.com/blog/understand-docker-volume-from-beginner-to-deep-dive-level/
- https://www.devopsschool.com/blog/docker-volume/


Code language: PHP (php)

  949  docker network ls
  950  ip a
  951  docker ps
  952  docker inspect 752c8e0a9559
  953  cleare
  954  clear
  955  docker network create dev
  956  docker network create qa
  957  docker network ls
  958  docker network inspect dev
  959  docker network inspect qa
  960  clear
  961  ls
  962  docker run -itd --net=dev ubuntu
  963  docker ps
  964  docker inspect 5c96d60aa9f3
  965  ip a
  966  clear
  967  ls
  968  docker network ls
  969  history
  970  docker network ls
  971  ip a
  972  clear
  973  docker run -itd --net=host ubuntu
  974  docker ps
  975  docker exec -it 02dbd55b117b
  976  docker exec -it 02dbd55b117b /bin/bash
  977  docker network ls
  978  docker run -itd --net=none ubuntu
  979  docker ps
  980  clear
  981  docker inspect acbdccd6591d
  982  clear
  983  docker ps
  984  docker exec -it acbdccd6591d /bin/bash
  985  docker network ls

Reference

Subscribe
Notify of
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x