Docker 是世界领先的软件容器平台。是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,
然后发布到任何流行的Linux或Windows机器上,可以实现虚拟化(软件层面),并没有虚拟化“物理机“,
也不需要安装新系统,共用”宿主机“的操作系统,提供功能的同时提高性能。容器是完全使用沙箱机制,相互没有接口。
容器是一个应用层抽象,将代码和依赖资源打包在一起,多个容器可以在一台机器上运行,共享操作系统内核,但是各自作为独立的进程在运行,
和虚拟机相比,占用空间较少,瞬间就能完成启动。
Compose
当用到模拟或者演示项目的时候 会用到Compose 这个东西,它是负责实现对Docker容器集群的 快速编排
1 创建出需要的准备工作,比如项目的某个库,框架编写的源代码,写配置文件 约定好 端口,路由 之类的
2 定义组成应用的服务,以便他们可以在隔离的环境中一起运行,连通各服务
3 运行和撰写启动并运行整个应用
主要使用在搭建和配置开发环境上
可能上面的话比较抽象,但也不是不好理解,在我看来用大白话解释 就是:
一个虚拟化的电脑,但是寄生在 真实电脑上的一个 电脑,某种方面比虚拟机更强大
Docker一共分为三部分 1仓库 2镜像 3容器.
1 仓库 :见名知意,它就好比是 存储 各种 app 的地方,从这里下载镜像
2 镜像 : 因为根据Dockers的特性,延申出一个名词,好比是程序的 安装包
3 容器 : 有了镜像就可以创建容器,并且在创建的时候设置权限,就像一个运行的 app ,一个镜像可以创建多个容器,之间是隔离的,在主从这点就很好的诠释了
优点 :速度更快 、更加轻量化,节省资源,弹性延伸,快速扩展,迁移方便,持续交付,部署,组建微服务架构
一致的运行环境:Docker 的镜像提供了除内核外完整的运行时环境,确保了应用运行环境一致性,从而不会再出现“这段代码在我机器上没问题啊”这类问题。
更快速的启动时间:可以做到秒级、甚至毫秒级的启动时间。大大的节约了开发、测试、部署的时间。
弹性伸缩,快速扩展:善于处理集中爆发的服务器使用压力。
迁移方便:可以很轻易的将在一个平台上运行的应用,迁移到另一个平台上,而不用担心运行环境的变化导致应用无法正常运行的情况。
持续交付和部署:使用 Docker 可以通过定制应用镜像来实现持续集成、持续交付、部署。
组建微服务架构:通过多个容器,一台机器可以跑多个服务,因此在本机就可以模拟出微服务架构。
命令:
docker images 查看已下载的镜像
docker rmi 镜像名称:标签名 删除已下载的镜像
docker search 镜像 从官方仓库(hub.docker.com)查找镜像
docker pull 镜像名称:标签名 标签名默认是 latest,代表最新版本。
docker run 创建容器
docker ps 列出运行中的容器(运行中)
docker ps -a 列出所有的容器(运行、未运行)
docker rm 容器名称 删除停止的容器
docker rm -f 容器名称 删除运行中的容器
docker start 容器名称 启动容器
docker stop 容器名称 停止容器
docker restart 容器名称 重启容器
docker exec 执行容器中的指令
尽量不要使用docker commit
制作镜像。
tips :
docker的四种网络模式 : https://www.cnblogs.com/gispathfinder/p/5871043.html
原文:https://www.cnblogs.com/wy919/p/12675701.html