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 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命令查看)

参考链接