Docker是用Go语言开发的一款容器化虚拟技术。Docker分为两个版本CE版(社区版 - 免费的)、EE版(企业版 - 收费)
为什么需要Docker?
简单来说,Docker可以将软件和环境一并的进行打包传递。
在开发中我们经常会遇到这样的问题:我的代码在本地是好好的,为什么放到另一个环境上就跑不起来了呢?
这时候就牵扯到了另一个因素环境。我们的开发环境受制很多因素,比如我用win或者mac os开发的,但是部署到了centos上面了,造成的环境影响。还有配置,数据库版本,等等一系列的问题。
因为环境的不同,当运维拿到我们的代码的时候就会很头疼。所以急切的希望出现一种技术来统一这些环境。你开发就不要只提交代码给我了,把你的代码连着你的开发环境直接打包丢给我吧。或者说我来弄一套环境,你在我这上面开发。
所以这时候docker就出现了,来解决我们这些一套环境的问题。
Docker VS 虚拟机
容器相对轻量级(MB级别),虚拟机比较重量级(GB级别)
启动速度容器比较快(S级),虚拟机启动比较慢(Min级)
Docker的三大要素
仓库:存放镜像的地方
镜像:镜像就是别人制作的一些完整的容器抽象层(镜像类似Java中类)
容器:容器就是根据镜像创建的(容器类似Java中的对象)
统一的docker仓库地址( Docker Hub):https://hub.docker.com
二、Docker的安装
在centos上安装docker,docker只支持centos7+
docker的前置环境:
yum install -y yum-utils device-mapper-persistent-data lvm2
安装docker的ce版的yum源:
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
通过yum安装docker:
yum install -y docker-ce
启动docker服务:
systemctl start/stop/restart docker
验证docker是否安装成功:
docker run hello-world
配置阿里云/网易云加速:
相关命令:
mkdir -p /etc/docker
cd /etc/docker
vim daemon.json
内容:
{
"registry-mirrors": ["https://b4tnkyhq.mirror.aliyuncs.com"]
}
重启docker服务
systemctl restart docker
三、docker的相关命令
docker --help -> 查看相关的命令帮助
docker xxxx --help -> 查看指定命令所需要的参数
docker seach xxxxx -> 从docker仓库中搜索相关的镜像
docker pull xxxx:tag -> 从docker仓库中拉去相关的镜像
docker images -> 查看本地的所有镜像
docker rmi 镜像名称/镜像id -> 删除指定的镜像,后面跟上$(docker images -q)表示删除所有的镜像
docker ps -> 查看当前所有运行中的容器
参数:-a表示查看所有容器包括停止中的容器
-q查询所有容器的id
docker rm 容器名/容器id -> 删除指定容器
docker run [参数] 镜像名/镜像id -> 根据一个镜像创建一个容器
参数:-d表示后台运行
-it表示交互式运行
-p 端口映射
--name 设置容器的名称,容器名称必须唯一



