原文引用地址:
https://blog.csdn.net/u014069688/article/details/100532774
一:什么是Docker
Docker本质上是一个采用虚拟化技术的容器,基于Linux容器进行再封装,使用户不用关心容器的管理,而简化应用操作。从2013开始有这个项目到现在也不过5年时间,但是发展应用却极其迅速,主要原因就是应用简单方便,传统的虚拟化是基于硬件实现的,如果要部署10个应用,则需要创建10个虚拟机,而Docker是基于操作系统做的虚拟化,也就是复用本地主机的操作系统,部署运营10个应用时只需要起10个隔离的应用即可。
DocKer一次构建可放在任何地方就可以运行,不需要进行任何改变DocKer 就类似于一个容器。这个容器就好像咱们常用的虚拟机一样,当我们虚拟机里面安装过VS、SQL、浏览器 … 之后咱们就把虚拟机镜像备份下来、等到下一次需要重新搭一个环境的时候,就可以省去很多事情了,直接把备份的虚拟机运行起来,该有的就都有了,省去了很多事情。
在用DocKer的情况下,咱们可以直接把项目发布在DocKer容器上面进行测试,当项目需要正式上线的时候我们直接可以把做好的DocKer 镜像部署上去就行了,如果测试的好,就不必担心项目上正式版本的时候再出现什么问题了,(比如说 咱们的Confing 配置信息很多项目都是什么测试环境地址,正式环境地址的,但是用过DocKer之后就一个就行了)DocKer可以在 云、Windows、Linux 等环境上进行部署,就单说这一点就省去了我的很多费用、还有项目部署上线的风险,不必每次项目上线都留守一堆人才等着项目。
二、Docker组成
那Docker由什么组成呢, 包括三个基本概念:
仓库(Repository)
镜像(Image)
容器(Container)
打个比方:你如果想玩英雄联盟中骚气的亚索,你首先得有这个英雄(Docker的镜像),然后你得花金币去英雄商店(Docker的仓库)买,接着进游戏就会看到一个半蹲的发型飘逸的剑客(Docker的容器),所以:
1,其中Registry是Docker用于存放镜像文件的仓库,Docker 仓库的概念跟Git
类似(就像商店存放所有的英雄,只是更改英雄的权限在某些非程序员手里)。2,所谓镜像就是构建容器的源代码,是一个只读的模板,由一层一层的文件系统组成的,类似于虚拟机的镜像(英雄也是只读的,有自己的技能被动,你也不能进行操作)。
3,那么容器就是由Docker镜像创建的运行实例,类似于虚拟机,容器之间是相互隔离的,包含特定的应用及其所需的依赖文件(好比每个英雄都是隔离的,都有自己的皮肤,技能以及走的路线)。
注:Docker
Hub是Docker公司提供的一个注册服务器(Register)来保存多个仓库,每个仓库又可以包含多个具备不同tag的镜像。
三、安装Docker
docker官方说至少3.8以上,建议3.10以上。
1,root账户登录,查看内核版本如下。
uname -a
2、把yum包更新到最新(提示:新环境可随意操作,生产环境酌情更新)
yum update
3、安装需要的软件包, yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的
yum install -y yum-utils device-mapper-persistent-data lvm2
4、设置yum源(选择其中一个)
yum-config-manager --add-repo http://download.docker.com/linux/centos/docker-ce.repo #(中央仓库)
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #(阿里仓库)
5,可以查看所有仓库中所有docker版本,并选择特定版本安装
yum list docker-ce --showduplicates | sort -r
6,安装Docker,命令:yum install docker-ce-版本号
,不指定版本直接安装最新的
yum install docker-ce
7、设置docker使用国内镜像(使用国内镜像下载会快很多)
vim /etc/docker/daemon.json
粘贴这段进去
{
"registry-mirrors":[
"https://kfwkfulq.mirror.aliyuncs.com",
"https://2lqq34jg.mirror.aliyuncs.com",
"https://pee6w651.mirror.aliyuncs.com",
"https://zro6mhyd.mirror.aliyuncs.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn",
"https://registry.docker-cn.com"
]
}
8, 启动Docker,命令:systemctl start docker,然后加入开机启动,如下
systemctl start docker
systemctl enable docker
附一些常用Docker命令,更多命令详解,请访问:http://www.docker.org.cn/dockerppt/106.html:
----------------- docker ps 查看当前正在运行的容器
----------------- docker ps -a 查看所有容器的状态
----------------- docker start/stop id/name 启动/停止某个容器
----------------- docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)
----------------- docker exec -ti id
启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)----------------- docker images 查看本地镜像 -----------------
docker rm id/name 删除某个容器
----------------- docker rmi id/name 删除某个镜像----------------- docker run --name test -ti ubuntu /bin/bash
复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash----------------- docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
----------------- docker run -d -p 2222:22 --name test
soar/centos:7.1 以镜