Docker入门篇
What
Docker是什么?
一种新兴的虚拟化工具(类似虚拟机),用来做快速交付,测试和部署代码的工具。
Docker基本概念
Docker包含三大基本概念
- 镜像(
Image
) - 容器(
Container
) - 仓库(
Repository
)
大概解释一下
- 镜像:官方和第三方维护了很多镜像,可以比作模板。(Mysql,Centos,Zookeeper等等…)
- 容器:由模板(镜像)启动的一个应用,也就是实际使用的应用。
- 仓库:Docker Hub(存放镜像的仓库),也可以自己搭建私服
Why
Docker有什么优点?
使用docker可以方便快捷的搭建开发环境
比如现在开发需要一个Mysql环境:
- 没有使用Docker前,你需要去官网下载安装包,然后安装再启动,具体复杂程度可以查看Centos7-Mysql5.6tar包安装
- 使用Docker后,你只需要在命令行运行
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
跟虚拟机有什么区别?
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;
而容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
特性 | Docker | 虚拟机 |
---|---|---|
启动 | 秒级 | 分钟级 |
硬盘使用 | MB | GB |
性能 | 接近宿主机 | 取决于分配的硬件 |
系统支持量 | 单机支持上千个容器 | 一般最多十几个 |
空间利用率 | 高(直接使用宿主机内存) | 低(需要预先分配内存) |
How
安装
Windows 和 MacOS直接去官网 下载Docker Desktop安装即可
Linux 测试和开发环境可以直接使用脚本命令安装Docker curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
具体安装指南可以看这里
常用命令介绍
docker search
介绍:在Docker Hub中搜索镜像
Demo:docker search mysql
docker pull
介绍:在Docker Hub中获取镜像,一般配合search使用
Demo:docker pull mysql
docker run
介绍:由镜像运行一个容器,如果本地未下载镜像,将自动从Docker Hub上下载响应镜像,一般格式为docker run 镜像名:标签(版本),标签不指定默认为lastest
Demo:docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
Demo解释: 运行一个mysql镜像
-p参数:并将容器的3306端口映射到宿主机的3306端口(格式为主机(宿主)端口:容器端口)
-e参数:设置Mysql默认root密码为123456,容器启动时需要的参数,这个需要查看Docker Hub中对应镜像的说明
-d参数:守护态(后台)运行
–name参数:指定容器名称
docker ps
介绍:查看当前正在运行的容器(不显示未运行的),使用docker ps -a可以列出所有容器
docker images
介绍:查看已下载的所有镜像
docker rm
介绍:删除容器
格式:docker rm 容器id (容器id可以通过docker ps命令查看)
docker rmi
介绍:删除镜像
格式:docker rmi 镜像id (镜像id通过docker images命令查看)