docker简介:
* docker:是为了将系统以及系统的开发环境一同打包!,避免了我在我的电脑上可以运行的问题;
* 传统:开发jar ,运维来做! 现在:开发打包部署上线,一套流程做完;
* java ----- jre ----- 项目打包包含运行时所需要的环境(镜像)----- 仓库中 ----使用
* docker属于轻量级的 (同样也是一种虚拟化技术) 运行时所占用的内存极小,以及效率贼高;
* docker与虚拟机技术的区别:
* 容器虚拟化技术不是模拟一个完成的操作系统
* 传统虚拟机,虚拟出来一个系统运行时所需要的硬件,然后在这个虚拟机上安装引用;
* 容器:容器内的每个引用都依赖于宿主机,容器没有内核,也没有虚拟我们的硬件,因此轻便;
* 每个容器之间是相互隔离的,每个容器内都有一个属于自己的文件系统,互不影响
* docker的安装:
* 镜像(image):
* 镜像就是一个模板(项目+环境) 类似于java中的类
* 容器(container):
* Docker利用的是容器的技术,独立运行一个或者一组应用,通过镜像来创建的 类似于类的实例!
* 我们可以将每一个容器都理解为一个简易的linux系统
* 仓库(respostory):
* 仓库是用来存放镜像的地方
* Docker环境安装准备:
* https://docs.docker.com/engine/install/centos/ 官网环境安装 翻译按步骤;
* 阿里云镜像加速:自行百度也是可以的
* docker---run分析:
*
* docker 工作原理:
* 是一个基于B/S结构的 ,Docker的守护进程运行在主机上,通过Socket进行的通信:
* docker 的常用命令:
* docker verison 显示docker版本信息
* docker info 显示当前docker系统信息
* docker --help 帮助命令
* 帮助文档的地址:https://docs.docker.com/engine/reference/commandline/
镜像命令:
* docker images 查看本机镜像
* docker search 镜像名称 查询镜像
* docker pull 镜像名称 拉取镜像
* docker pull 镜像名称:指定版本 拉取指定版本的镜像服务
* ➜ ~ docker rmi -f 镜像id #删除指定的镜像
* ➜ ~ docker rmi -f 镜像id 镜像id 镜像id 镜像id#删除指定的镜像
* ➜ ~ docker rmi -f $(docker images -aq) #删除全部的镜像
容器命令
* docker -d 后台方式启动;
* docker -d it
* docker -P 指定端口
* docker -P 主机端口:容器端口(常用的)
* docker -P 容器端口;
* docker - p小p 随机端口
*运行命令:
* docker run -it 镜像名称 /bin/bash 启动并进入容器
* 容器查看操作
* docker ps 查看正在运行的容器
* docker ps -a 查看曾经运行的容器
* docker ps -a -n=1 查看最近的一个容器
* docker ps -aq 单纯显示容器编号
* 容器退出操作:
* exit 退出容器
* ctrl + p + q 退出来但不退出容器
* 删除容器:
* docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除 rm -rf
* docker rm -f $(docker ps -aq) #删除指定的容器
* docker ps -a -q|xargs docker rm #删除所有的容器
* 启动容器:
* docker start 容器id #启动容器
* docker restart 容器id #重启容器
* docker stop 容器id #停止当前正在运行的容器
* docker kill 容器id #强制停止当前容器
* 后台启动
* # 命令 docker run -d 镜像名 ➜
* docker run -d centos
* # 问题docker ps. 发现centos 停止了 # 常见的坑,docker容器使用后台运行,就必须要有要一个前台进程,docker发现没有应用,就会自动停止 # nginx,容器启动后,发现自己没有提供服务,就会立刻停止,就是没有程序
* 查看日志
* --tail number #需要显示日志条数
* docker logs -t --tail n 容器id #查看n行日志
* docker logs -ft 容器id #跟着日志
* 查看容器中进程信息
* docker top 容器id
* 查看容器的信息
* docker inspect 容器id (查看数据的源数据详细信息)
* 进入当前正在进行的容器
* 一、docker exec -it 容器id /bin/bash(-it是进入交互模式的意思,通过bash命令行进去)进入容器后开启新的终端
* 二、docker attach 容器id /bin/bash 进入容器正在执行的终端
* 文件拷贝:将docker容器中的内容拷贝到宿主机内
* docker cp 容器id:/home/.....