docker基础
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统。
简单地说docker就是一种沙箱+git的技术,但又区别于传统沙箱技术。 Docker中有有比较关键的三个概念image(镜像)、container(集装箱)、repertory(仓库)或者Registry(仓库注册服务器) image是只读镜像包,是构成container的基础。他们的关系可以认为是装机的ISO包和装好后的系统,从一个镜像包中可以衍生出很多个container,每一个container都是独立的沙箱。有点面向对象编程当中的“类型”和“对象”的关系。Image是不允许被更改的,每一个Image生成的沙箱环境从始至终都是一致的。Image存在仓库中,仓库分为公有仓库和私有仓库。每一个人都可以从公有仓库pull下来里面的各种image。
image中还需要强调一点,每一个image都可以打tag。所以构成image唯一的条件是image名称,以及该image的tag
Docker最基本的命令: IMAGE相关:
- docker pull 从仓库当中拉下来一个镜像,默认仓库服务器为docker.io
- docker run 运行一个docker镜像,并创建一个新的实例(container)
- docker commit 依托于某个实例 创建一个新的image
- docker push 提交一个新的实例到仓库中
- docker tag 创建一个新的tag,准确的说是从某个image:tag中复制一个新的image出来,并以新名字和tag命名
- docker images 查看本机已有的image
- docker search 搜索仓库中的镜像
- docker rmi 删除本地某个镜像
CONTAINER相关:
- docker start 启动一个已经存在过的实例
- docker attach 进入这个实例
- docker rm 删除某一个实例,删除前必须停止
- docker stop 停止某个正在运行当中的实例(container)
- docker ps 查看当前运行的容器, -a 查看所有