Docker为什么出现
环境的不一致, 从开发到部署上线, 应用的配置很复杂, 特别是集群的配置, 而利用Docker技术, 直接将jar和环境打包放入Docker商店, 需要的时候, 直接进入Docker中下载就行.
并且Docker利用隔离的思想, 将每个应用打包装箱, 相互隔离, 可以将服务器利用到极致
容器化技术并不是一个完整的系统
Docker的组成

Docker常用命令
docker version #显示docker版本信息docker info #显示docker系统信息docker 命令 --help #帮助命令#可选项-a, --all #列出所有的对象-q, --quiet #只显示镜像的id
镜像命令
docker images
查看本地主机上所有的镜像
root@master:/home/lkh# docker imagesREPOSITORY TAG IMAGE ID CREATED SIZEhello-world latest feb5d9fea6a5 5 months ago 13.3kB
repository: 镜像的仓库
tag: 镜像的标签
image id: 镜像的ID
created: 创建时间
size: 大小
docker search images_name搜索镜像
docker search mysql#可选项, 过滤, 搜索stars超过3000的docker search mysql --filter=stars=3000
docker pull 镜像名 [:tag]
如果不写tag, 默认下载最新的文件
docker pull mysql :5.8
docker rmi 删除镜像
docker rmi -f 镜像id [镜像id]...# 删除一个镜像或者多个镜像docker rmi -f ${docker images -aq} # 删除全部的镜像
容器的命令
拉取centos测试
docker pull centos
新建容器并启动
docker run [可选参数] image# 参数说明--name="Name" 容器的名字, tomcat1, tomcat2, 用来区分容器-d 后台方式运行-it 使用交互的方式运行, 进入容器查看内容-p 指定容器的端口-p ip:主机端口:容器端口-p 主机端口:容器端口-p 容器端口容器端口-P(大写的P) 随机端口
查看运行的容器
docker ps # 查看正在运行的程序docker ps -a # 查看曾经运行过的容器docker -n=? # 查看最近n个运行的容器docker -q # 只显示容器的编号exit # 直接停止容器并退出ctrl+q+p # 退出, 后台挂起
删除容器
docker rm 容器id #删除指定的容器docker rm -f $(docker ps -aq) #删除所有的容器docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器的操作
docker start 容器id # 启动容器docker restart 容器id # 重启容器docker kill 容器id # 强制停止容器docker stop 容器id # 停止当前的容器
常用的其他容器
后台启动
docker run -d centos# 使用docker ps, 发现centos停止,docker容器使用后台运行, 就必须要有一个前台进程, docker发现没有应用, 就会自动停止
查看日志
docker logs -f -t --tail 个数## tail 显示日志的个数
查看容器的元数据
docker inspect 容器id
进入当前正在运行的容器
docker exec -it 容器id bashShell
