Execute docker
docker pull busybox
docker run -it --name my_container /bin/sh
docker exec -it my_container /bin/sh
Running application as a container
docker build -t "image_name" .
docker run --rm -p=5000:5000 -vpwd
/data:/app/data image_name
docker run -it -p 9000:9000 --name sonar123 sonarqube
docker run -it -p 8000:8000 --name myjenkins jenkins
docker run -it --entrypoint=/bin/bash my-app
docker run -d -p 5000:5000 --name my-flask-application my-app
docker run -it -p 5000:5000 --name my-flask-application my-app
docker run --rm -p=6003:6003 -vpwd
/my_data:/app/data image_name
Remove docker images
docker rmi -f docker_imageID
docker rmi -f ec596bcaaddf
Remove all docker container
docker rm -f $(docker ps -a -q)
Remove all docker running container
docker rm -f $(docker ps -q)
Open container with interactive mode
docker exec -it my-flask-application /bin/sh
Stop Container
docker start container_ID
docker stop container_ID
docker stop $(docker ps -a -q)
Display logs
docker container logs [OPTIONS] CONTAINER
docker container logs -f CONTAINER_ID
Building complete Application
docker build -t my-flask-image .
docker build -t my-app .
docker run -it -p 6003:5000 --name my-flask-application image_name
docker run -it -p 6003:6003 --name my-flask-application image_name
Save Docker Image
docker save py3alpine-image | gzip > py3alpine-image
Load Docker Image
zcat image_name | docker load
Change Docker Image Name / tag
docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TAG]
docker tag 0e5574283393 fedora/httpd:version1.0
Select Environment
eval $(minikube docker-env)
Reset Environment to docker
eval $(minikube docker-env -u)
Docker Setup
yum install docker
systemctl enable docker.service
Linux Operating system
systemctl start docker.service ## <-- Start docker ##
systemctl stop docker.service ## <-- Stop docker ##
systemctl restart docker.service ## <-- Restart docker ##
systemctl status docker.service ## <-- Get status of docker ##
Windows Operating system
Restart from Run -> services.msc -> choose Docker Desktop Service
Right click on Docker Desktop Service and choose restart/start/stop
Docker port forwarding
ssh -i ~/.minikube/machines/minikube/id_rsa docker@$(minikube ip) -L \*:30090:0.0.0.0:30090
Linking and working with multiple containers to perform single operation
docker pull mysql
docker run --name easql -e MYSQL_ROOT_PASSWORD=abc123 -d mysql:latest
docker pull wordpress
docker run --name ealocal --link easql:mysql -p 8080:80 -d wordpress
Copy content from Docker container
SYNTAX: docker cp SOURCE_PATH DESTINATION_PATH
docker cp CONTAINER_ID:FOLDER_PATH LOCAL_DESTINATION_PATH
example: docker cp 07gsbsdh4563:/app/sample.txt c:\sample_data\
Copy content from Local machine to Docker container
SYNTAX: docker cp LOCAL_SOURCE_PATH DESTINATION_PATH
docker cp LOCAL_DESTINATION_PATH CONTAINER_ID:FOLDER_PATH
example: docker cp sample.txt 07gsbsdh4563:/app/sample.txt
Execute command on docker container from your physical machine
Syntax: docker exec -it container_id command
example: docker exec -it 07gsbsdh4563 ls
example: docker exec -it 07gsbsdh4563 cat sample.txt
Note: we can also use -d to run the command in ditached mode.
Docker inspect container
docker inspect CONTAINER_ID
Docker create volume
docker volume create my-vol
Docker list volumes
docker volume ls
Docker inspect volume
docker volume inspect VOLUME_NAME
docker volume inspect my-vol
Docker remove volume
docker volume rm my-vol
Start a container with a volume
docker run -d --name dev_testing -v my-vol:/app mysql:latest
docker run -d --name dev_testing --mount source=myvol2,target=/app mysql:latest