docker 简介及安装
一、容器技术的介绍
容器container是指的一种技术,而Docker只是一个容器技术的实现,或者说Docker是让容器技术普及开来的最成功的实现。
什么是container(容器)?
容器是一种快速的打包技术。
有如下三个特点:
- 标准化
- 轻量级
- 易移植
容器的优势
- 加速你的软件开发
- 加速你的程序编译和构建
- 加速你的测试
- 加速你的部署
- 加速你的更新
- 加速你的故障恢复
Docker 的架构
Linux 系统上安装 Docker
二、容器快速上手
常见的Docker命令
1、查看Docker版本
docker version
2、docker + 管理的对象(比如容器,镜像) + 具体操作(比如创建,启动,停止,删除)
比如:
docker image pull nginx
拉取一个叫nginx镜像
docker container stop web
停止一个叫web的容器
Image 和 Container 【镜像 & 容器】
1、image镜像
- Docker image是一个
read-only
文件 - 这个文件包含文件系统,源码,库文件,依赖,工具等一些运行application所需要的文件
- 可以理解成一个模板
- docker image具有分层的概念
2、container容器
- 一个运行中的docker image实例
- 实质是复制image并在image最上层加上一层 read-write 的层 (称之为 container layer ,容器层)
- 基于同一个image可以创建多个container
3、docker image的获取途径
- 自己制作
- 从Docker仓库拉取(比如docker hub)
容器的基本操作
操作 | 命令 |
---|---|
容器的创建 | docker run + 镜像名称 |
查看所有容器 | docker ps |
容器的停止 | docker stop + 容器ID |
容器的删除 | docker rm + 容器ID |
容器和虚拟机 Container vs VM
容器不是Mini虚拟机
- 容器其实是进程Containers are just processes
- 容器中的进程被限制了对CPU内存等资源的访问
- 当进程停止后,容器就退出了
docker container run 背后发生了什么?
$ docker container run -d --publish 80:80 --name webhost nginx
- 在本地查找是否有nginx这个image镜像,但是没有发现
- 去远程仓库查找nginx镜像(默认的registry是Docker Hub)
- 下载最新版本的nginx镜像 (nginx:latest 默认)
- 基于nginx镜像来创建一个新的容器,并且准备运行
- docker engine分配给这个容器一个虚拟IP地址
- 在宿主机上打开80端口并把容器的80端口转发到宿主机上
- 启动容器,运行指定的命令(这里是一个shell脚本去启动nginx)