- Dockerfile
- Docker Commands
- Persistent Data and Volume Management
- Connecting Containers
- Docker Networking
- Pro Tips
- Important Links
FROM node
WORKDIR /myapp
COPY . /myapp/
RUN npm install
EXPOSE 3000
CMD ["npm", "start"]
docker build -t .
docker images
docker images ls
docker run
docker ps
docker run -p 3000:3000
docker run -d -p 3000:3000
docker run -d -p 3001:3000 docker run -d -p 3002:3000 docker run -d -p 3004:3000
docker ps -a
docker rm
docker stop
docker run -d --rm -p 3000:3000
docker run -d --rm --name "prabin" -p 3001:3000
docker build -t prabin:01 . docker build -t prabin:02 .
FROM node:latest # Or specify a version: node:14
docker pull python docker pull nginx
docker run -p 8000:80 nginx:latest
Access via: http://localhost:8000
docker run -it --rm -v myvolume:/myapp
-vindicates volume usage.myvolumeis the volume name./myappis the working directory in the Docker container.
docker volume ls
docker volume inspect myvolume
docker run -it -v /path/to/local/file:/container/path -rm
docker run -it -v /User/root/Documents/pythonfilecontainer/requirement.txt:/myapp/requirement.txt -rm
docker pull mysql:latest docker run -d --name mysqldb -e MYSQL_ROOT_PASSWORD="root" -e MYSQL_DATABASE="userinfo" mysql
docker inspect mysqldb
Use the IP address (e.g., 172.17.0.2) to connect in your Python code:
host = "172.17.0.2" user = "root" password = "root" database = "userinfo"
Use host.docker.internal as the MySQL host:
host = "host.docker.internal" user = "root" password = "root" database = "userinfo"
docker network create my-net
docker run -d --env MYSQL_DATABASE="userinfo" --env MYSQL_ROOT_PASSWORD="root" --name mysqldb --network my-net mysql
host = "mysqldb" user = "root" password = "root" database = "userinfo"
- Always use specific versions for base images in production Dockerfiles.
- Use multi-stage builds to keep your final image size small.
- Leverage Docker Compose for managing multi-container applications.
- Regularly prune unused Docker objects to save disk space.
Happy Dockerizing! π³β¨
These commands enhance your Docker workflow with:
- Image versioning and portability
- Container debugging
- System maintenance
- Resource management
- Network configuration
- Volume handling
- Service orchestration
- Monitoring capabilities
Each command is production-ready and commonly used in real-world scenarios.