记得上大三时,要给微机房电脑安装系统,除了原生的操做系统外,还要另外安装一些必要的开发软件,若是每台电脑都从新去安装的话工做量就很大了,这个时候就使用了windows镜像系统,咱们将要安装的软件装好打包成一个镜像,其余电脑只要装这个镜像就能够了,这样工做量就减小了不少。Docker跟这个镜像并非一回事,可是思想是相同的。mysql
咱们在一台服务器中下载、安装、配置好Mysql,在另一台服务器中又得从新下载、安装、配置,这样很麻烦也容易出现一些错误。sql
这个时候Docker就派上用场了,咱们能够将安装配置好的软件打包成一个镜像,而后其余的服务器中只要安装了Docker,就能够运行镜像,运行成功后的镜像咱们称为容器,每一个容器之间使用了沙箱隔离机制,这就是Docker的做用。docker
Docker是一个开源的应用容器引擎,基于 Go 语言 并听从Apache2.0协议开源。Docker是一个轻量级容器技术,它不是一个虚拟机技术,却实现了虚拟机技术的资源隔离,并且他的性能要比虚拟机技术高。windows
Docker支持将软件编译成一个镜像;而后在镜像中各类软件作好配置,将镜像发布出去,其余使用者能够直接使用这个镜像。运行中的这个镜像称为容器,容器启动是很是快速的。相似windows里面的ghost操做系统,安装好后什么都有了。tomcat
先学习几个核心概念服务器
主机(Host):安装了Docker程序的机器(Docker直接安装在操做系统之上)。性能
客户端(Client):链接docker主机进行操做。学习
仓库(Registry):用来保存各类打包好的软件镜像(包括公共仓库和私有仓库)。阿里云
镜像(Images):软件打包好的镜像,放在docker仓库中。spa
容器(Container):镜像启动后的实例称为一个容器,容器是独立运行的一个或一组应用。
咱们使用Docker只须要按照如下步骤:
安装Docker。
去Docker仓库找到这个软件对应的镜像。
使用Docker运行这个镜像,这个镜像就会生成一个Docker容器。
对容器的启动中止就是对软件的启动中止
接下来咱们来在Linux安装Docker,首先咱们必须先安装好Linux虚拟机,这个在此不赘述了,咱们直接从安装Docker开始,
首先咱们要检查内核版本,命令为:uname -r,必须是3.10及以上,而后就按照步骤进行安装:
安装: yum install docker 中间有一个确认操做,按y肯定
启动:systemctl start docker。
查看版本:docker -v。
设置开机启动:systemctl enable docker。
关闭:systemctl stop docker。
通常正常安装不会有问题,若有问题,百度一下也能解决。
这里的搜索实际上是去https://hub.docker.com/ 中进行搜索,咱们也能够去这里直接进行搜索。
拉取:docker pull 镜像名:tag (:tag是可选的,tag表示标签,多为软件的版本,默认是latest) 搜索完成以后,咱们能够对咱们想要的镜像进行拉取,例:docker pull mysql
以前没使用国内镜像加速,下载了半个小时还没完成,建议使用镜像加速器,我使用的是阿里云的,直接注册后,按照教程使用便可https://cr.console.aliyun.com/。
列表:docker images 安装完成以后使用命令 查看已下载的镜像
4.删除:docker rmi image-id 删除不要的镜像,image-id 对应相关镜像ID
镜像下载成功后,咱们能够开始进行容器操做,为了方便演示,咱们再下载tomcat的镜像:docker pull tomcat
下面咱们对容器进行操做:
运行: docker run --name container-name -d image-name 其中name 参数是咱们自定义容器名 -d 指后台运行,image-name 是镜像名称,例:docker run --name mytomcat -d tomcat:late
2. 查看运行镜像列表:docker ps ,运行成功后面能够经过命令查看,这个命令只查看正在运行的容器
查看全部镜像列表:docker ps -a
删除镜像:docker rm 容器的id 例:docker rm 43e2182aceec
启动一个作了端口映射的tomcat: 启动的总体命令相同,须要加上一个 -p: 将主机的端口映射到容器的一个端口 主机端口:容器内部的端口,例:docker run --name mytomcat -d -p 8888:8080 tomcat:latest ,这个时候咱们将主机的端口号与容器端口映射,这样才能在外部直接访问。
8. 查看容器日志:docker logs 容器的id 例:docker logs fc5b1c7c31bb
这是一些基础命令,想要学习更多的命令请访问:https://docs.docker.com/engine/reference/commandline/docker/