Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口
简单来说,docker是一个用Go语言实现的开源项目,可以让我们方便的创建和使用容器,docker将程序以及程序所有的依赖都打包到docker container,这样你的程序可以在任何环境都会有一致的表现,这里程序运行的依赖也就是容器就好比集装箱,容器所处的操作系统环境就好比货船或港口,程序的表现只和集装箱有关系(容器),和集装箱放在哪个货船或者哪个港口(操作系统)没有关系。
因此我们可以看到docker可以屏蔽环境差异,也就是说,只要你的程序打包到了docker中,那么无论运行在什么环境下程序的行为都是一致的,程序员不会再有“在我的环境上可以运行”,真正实现“build once, run everywhere”。
此外docker的另一个好处就是快速部署,这是当前互联网公司最常见的一个应用场景,一个原因在于容器启动速度非常快,另一个原因在于只要确保一个容器中的程序正确运行,那么就能确信无论在生产环境部署多少都能正确运行
我们可以简单的把image理解为可执行程序,container就是运行起来的进程
(1)查看docker容器版本:docker version
(2)查看docker容器信息:docker info
(3)查看docker容器帮助:docker --help
(4)拉取镜像: docker pull ${CONTAINER NAME}
(5)查看本地所有镜像: docker images
(6)查看所有正在运行的容器,加-q返回id:docker ps
(7)查看所有容器,加-q返回id:docker ps -a
(8)删除镜像: docker rmi ${IMAGE NAME/ID}
(9)删除所有镜像: docker rmi ${docker images -a -q}
(10)删除容器: docker rm ${CONTAINER NAME/ID}
(11)显示运行容器的日志: docker logs ${CONTAINER NAME/ID}
(12)设置容器名称: --name ${container name}
(13)映射主机和容器内的端口: -p ${host port}:${container port}
(14)添加环境变量: -e ${env name} =${env value}
(15)后台运行: -d
(16)将主机目录挂载到容器内: -v ${host foler path}:${container folder path}
(17)显示所有退出的容器 :docker ps -f “status=exited”
(18)重启所有正在运行的容器: docker restart ${docker ps -q}
(19)停止所有容器: docker stop ${docker ps -a -q}
(20)删除所有容器: docker rm ${docker ps -a -q}
(21)删除所有退出的容器: docker rm ${docker ps -f “status=exited”}
(22)启动所有容器: docker start ${docker ps -a -q}
(23)显示一个容器的top信息:docker top ${CONTAINER NAME/ID}
(24)显示容器统计信息(正在运行):docker stats
(25)显示所有容器的统计信息(包括没有运行的): docker stats -a
(26)显示所有容器的统计信息(包括没有运行的)只显示一次:docker stats -a --no-stream
(27)统计容器信息并以使用流量作为倒序:docker stats --no-stream | sort -k8 -h
(28)显示硬盘占用: docker system df
(29)显示容器的实时事件: docker system events
(30)显示系统信息: docker system info
(31)清理文件: docker system prune