# Docker Essential Commands

As a DevOps professional or system engineer, mastering Docker commands is essential for efficiently managing containerized applications

**<mark>Docker Hub :</mark>**

Login into Docker

```plaintext
docker login -u
```

To get docker image from Docker Hub

```plaintext
docker pull <image_name>
```

Publish an image to Docker Hub

```plaintext
docker push <image_name>
```

Logout from Docker Hub

```plaintext
docker logout
```

### Docker Image :

List docker images

```plaintext
docker images
```

Build an image from a DokerFile

```plaintext
doker build -t <image_name>
```

Delete an image

```plaintext
docker rmi <image_name>
```

To take image Backup

```plaintext
docker save -o <enter path location/filename.tar> <image_name:tag>
```

To load / Revert deleted image file

```plaintext
docker load -i <backup image name>
```

### Docker Container :

List containers

```plaintext
docker ps
```

New container launch (Run a container with and publish a container's port to the host)

```plaintext
docker run -itd -p "<host_port>:<con_port>"
```

Start an existing container

```plaintext
docker start <con_name> or <con_id>
```

Stop an existing container

```plaintext
docker stop <con_name> or <con_id>
```

Open through /bin/bash inside a running container (Go to inside the container)

```plaintext
docker exec -it <con_name> or <con_id> /bin/bash
```

To view the container logs

```plaintext
docker logs <con_name> or <con_id>
```

To inspect the container details

```plaintext
docker inspect <con_name> or <con_id>
```

To view the details (Like task manager)

```plaintext
docker top <con_name> or <con_id>
```

To check the container memory status

```plaintext
docker stats <con_name> or <con_id>
```

To change/convert container to image

```plaintext
docker commit <con_id> <set_image_name:tag>
```
