docker --version
docker version
Dockerfile
FROM php:7-apache
COPY . /var/www/html
WORKDIR /var/www/html
#CMD php index.php
EXPOSE 80
docker build -t helloworldphp7 .
To run docker image
docker run -p 8080:80 -v /c/xampp/htdocs/dockerdemo:/var/www/html -d php:8-apache
OR
docker run -p 8080:80 --name docker-apache -v /c/xampp/htdocs/dockerdemo:/var/www/html:ro -d php:8-apache
OR
docker run -d -p 8080:8080 --name jsp-project -v /root/jsp/:/usr/local/tomcat/webapps/test tomcat:9.0.1-jre8-alpine
To run docker image in interactive mode
docker container run -it <docker-image> /bin/bash
To List all images
docker images
docker images -q
To List all container
docker ps
docker ps -a
docker ps -aq
To remove image
docker rmi imagename
OR
docker rmi $(docker images -aq)
To remove container
docker rm <container-name>
OR
docker rm $(docker ps -aq)
OR
docker rm -f $(docker ps -aq)
To stop container
docker stop <container-name>
OR
docker stop $(docker ps -aq)
To push local image on docker hub
First create repository in dockerhub like we used to create in gitlab/github
docker login
docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage
docker images
docker push YOUR_DOCKERHUB_NAME/firstimage
Working with MySQL
docker pull mysql/mysql-server:latest
docker images
docker create -v /var/lib/mysql --name mysqldata mysql/mysql-server:latest
docker ps -a
docker run -p 3307:3307 -d -e MYSQL_ROOT_PASSWORD=root --volumes-from mysqldata --name=mysqldb1 mysql/mysql-server:latest
docker ps
docker exec -it mysqldb1 bash
mysql -uroot -p