Dockerfile
- Create a Dockerfile in one folder with name "Dockerfile"
- Edit this file with below contents:
 FROM alpine:latest
 MAINTAINER Chuantao
 CMD echo "Hello Docker!"
- Run this command to build a new docker image locally:
 docker build -t hello-docker .
 -t: Name and optionally a tag in the ‘name:tag’ format. So above command will create a docker image with its name "hello-docker" and tag "latest".
- After creating the image, docker run hello-docker will print out the message "Hello docker!"
Volume
- Mount a contain's path to host. A new path will be created in the host.
 docker run -d --name nginx -v /usr/share/nginx/html nginx
 This will run a docker container and expose the container's inside path /usr/share/nginx/html to host so that host can access this path.chuantao@chuantao-IdeaPad:~/docker/d2$ docker run -d --name nginx -v /usr/share/nginx/html nginx
 8db75f013f8b84a182974690177088a19a2199aa3738788aa14daeb6a34c85aa
 chuantao@chuantao-IdeaPad:~/docker/d2$ docker inspect nginx
 ...
 "Mounts": [
 {
 "Type": "volume",
 "Name": "7558ecd064bb74123cb3aca0a054a68b6254158b87b5a8bcd80f6fd4c3c4c378",
 "Source": "/var/lib/docker/volumes/7558ecd064bb74123cb3aca0a054a68b6254158b87b5a8bcd80f6fd4c3c4c378/_data",
 "Destination": "/usr/share/nginx/html"
 ...The path in red is the host path, a mapping of the contain's path. Then the folder can be accessed from this path. 
- Mount an exist local host path to a container's path.
 docker run -d -p 8080:80 -v $PWD:/usr/share/nginx/html nginx
 This will run image 'nginx' server. User can access the server through host's 8080 port. When user updates the content of the index.html file inside the host path $PWD, refresh the browser to access '192.168.1.98:8080' will immediately reflect the updates.
- Run from another volume container
- 
- Create a data container first.
 docker create -v $PWD/data:/var/mydata --name data_container ubuntu
 This will generate a docker data container(not docker image) from base image 'ubuntu'. The data folder of current path in the host will be mapped to the '/var/mydata' path in the container. After running this command, the generated container can be listed by running 'docker ps -a'.
- Run another container.
 docker run -it --volumes-from data_container ubuntu /bin/bash
 This will launch another container based from ubuntu and enter the interactive mode.
- Type 'mount' in command and we can see one line like
 "/dev/sda5 on /var/mydata type ext4 (rw,relatime,errors=remount-ro,data=ordered)"
- cd /var/mydata
- As currently it is empty, we create one file here by typing
 "touch whatever.txt", then exit
- Now we can see the same file in host's current data folder.
- By this means, multiple docker containers can share the same host folder.
 
- Create a data container first.
 
- 
