一、定义
- 官方定义:Docker是一个能够把开发的应用程序自动部署到容器的开源引擎。由 Docker Inc. 公司 前 dotC1oud公司, PaaS市场中的老牌提供商)的团队编写,基于 Apache 2.0开源授权协议发行。
- 程序员能理解的定义:Docker是Docker Inc. 公司开源的一个基于Linux技术构建容器的容器引擎,其源代码在GitHub上,基于Go语言开发并遵从Apache 2.0协议;
- 普通人能理解的定义:“没有集装箱,就不会有全球化。”而Docker就是IT领域里改变世界的“集装箱”;
- 圈里人总结:Docker是一套以容器技术为核心的IT标准化构建体系。它不仅仅是一项技术,更不仅仅是一家公司,Docker必将改变整个IT世界,“Build Ship Run”。
二、优势
- 对开发人员来说:Docker提供了简单快速的隔离环境,无需再为配置环境操心,让程序跑到哪都一样;
- 对运维人员来说:Docker可以快速构建出一整套无状态分布式基础设施,使得运维工作可以通过程序化的脚本来完成;
- 对业务人员来说:从每月或每周才能发布的新版本到只需1小时就能发布完毕,迅速满足用户新需求;
- 标准化应用发布:Docker容器包含了运行环境和可执行程序,可以跨平台和主机使用;
- 节约时间:快速部署和启动,VM启动一般是分钟级,Docker容器启动是秒级;
- 方便构建基于SOA架构或微服务架构的系统,通过服务编排,更好的松耦合;
- 节约成本:以前一个虚拟机至少需要几个G的磁盘空间,Docker容器可以减少到MB级;
- 方便持续集成:通过与代码进行关联使持续集成非常方便;
- 可以作为集群系统的轻量主机或节点:在IaaS平台上,已经出现了CaaS,通过容器替代原来的主机。
三、docker的基本命令
1.卸载旧的docker 方式一:Rpm方式查询卸载 查找已经安装docker # rpm -qa | grep -i docker 卸载docker # rpm -e [module1][module2][.....] // 方式二:yum方式查询卸载 查找已经安装docker # yum list installed | grep -i docker yum方式卸载docker # yum -remove 2.安装docker #yum install -y docker 3.检查安装是否成功 #docker version 4. 设置镜像加速器 安装完成后修改 /etc/docker/daemon.json : { "registry-mirrors":"https://uulfe4bd.mirror.aliyuncs.com" } 5.启动docker # systemctl start docker //centos7及以后版本 # service docker start //centos6及之前的版本 6.获取CentOS镜像(使用阿里云CentOS的镜像) 在 https://dev.aliyun.com/list.html 上 搜索 centos7,找到纯净版(也就是centos7的基础镜像),拿到地址: # docker pull registry.cn-hangzhou.aliyuncs.com/moensun/centos7 7.确认 CentOS 镜像已经被获取 # docker images registry.cn-hangzhou.aliyuncs.com/1hpc/centos 8.创建docker 容器(可以根据一个镜像创建多个容易) # docker run -tid 镜像ID /bin/bash //非centos7 # docker run -tid 镜像ID /usr/sbin/init //centos7版本。使用/usr/sbin/init解决systemctl报错不能使用的问题 9.查看容器列表 # docker ps [option] # docker ps -a 10.重命名容器名称 # docker rename old容器名 new容器名 11.停止容器 # docker stop 容器名称 12.进入容器 # docker exec -it 容器名称 /bin/bash 13.退出容器 #exit 14.删除镜像 # docker rmi 镜像ID 15.删除容器 # docker rm 容器名称 16.Docker文件拷贝(容器<=>docker) # docker cp 原路径 docker容器名:docker容器路径(系统=》docker) # 例如:docker cp mysql-server-5.6.38-1.el7.x86_64.rpm firstMain:/root/ # docker cp docker容器路径 原路径(docker=》系统)