简介:Docker介绍和使用场景

1、什么是Dokcer
		百科:一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;

		使用go语言编写,在LCX(linux容器)基础上进行的封装

		简单来说:
			1)就是可以快速部署启动应用
			2)实现虚拟化,完整资源隔离
			3)一次编写,四处运行(有一定的限制,比如Docker是基于Linux 64bit的,无法在32bit的linux/Windows/unix环境下使用)

	2、为什么要用
		1、提供一次性的环境,假如需要安装Mysql,则需要安装很多依赖库、版本等,如果使用Docker则通过镜像就可以直接启动运行   

		2、快速动态扩容,使用docker部署了一个应用,可以制作成镜像,然后通过Dokcer快速启动

		3、组建微服务架构,可以在一个机器上模拟出多个微服务,启动多个应用

		4、更好的资源隔离和共享
		5、基于物理机可以动态的对应用进行扩容或者调整不同容器的配置参数

		一句话:开箱即用,快速部署,可移植性强,环境隔离

Docker的安装

本地centos7虚拟机下安装:

虚拟机的配置要求:  **Docker要求64位的系统且内核版本至少为3.10。**
    一:查看centos 版本     cat /etc/redhat-release  
    二:查看内核版本:cat /proc/version
    Linux version 3.10.0-957.1.3.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) ) #1 SMP Thu Nov 29 14:49:43 UTC 2018

作者的虚拟机内核为3.10.0_957,所以可以在本地玩玩。

阿里云服务器安装Docker:

Linux Standard Base的缩写,lsb_release命令用来显示LSB和特定版本的相关信息
	命令: lsb_release -a 

	阿里云安装手册:
	https://help.aliyun.com/document_detail/51853.html?spm=a2c4g.11186623.6.820.RaToNY

Docker 的基本概念

Docker仓库、镜像、容器核心知识讲解
	Docker 镜像 - Docker images:
				 容器运行时的只读模板,操作系统+软件运行环境+用户程序
				 
				 class User{
					 private String userName;
					 private int age;
				 }


		Docker 容器 - Docker containers:
				容器包含了某个应用运行所需要的全部环境
				
				 User user = new User()


		Docker 仓库 - Docker registeries: 
				用来保存镜像,有公有和私有仓库,好比Maven的中央仓库和本地私服
				镜像仓库:	
				

		对比面向对象的方式
		Dokcer 里面的镜像 : Java里面的类 Class
		Docker 里面的容器 : Java里面的对象 Object
		通过类创建对象,通过镜像创建容器

Docker的常用命令:

简介:讲解Docker在云服务上的实际应用
	1、 常用命令(安装部署好Dokcer后,执行的命令是docker开头),xxx是镜像名称

		搜索镜像:docker search xxx 
		
		列出当前系统存在的镜像:docker images
		
		拉取镜像:docker pull xxx
			xxx是具体某个镜像名称(格式 REPOSITORY:TAG)
			REPOSITORY:表示镜像的仓库源,TAG:镜像的标签

		运行一个容器:docker run -d --name "xdclass_mq" -p 5672:5672 -p 15672:15672 rabbitmq:management
			docker run - 运行一个容器
			-d 后台运行
			-p 端口映射
			rabbitmq:management  (格式 REPOSITORY:TAG),如果不指定tag,默认使用最新的
			--name "xxx"
		
		列举当前运行的容器:docker ps

		检查容器内部信息:docker inspect 容器名称

		删除镜像:docker rmi IMAGE_NAME
			 强制移除镜像不管是否有容器使用该镜像 增加 -f 参数,

		停止某个容器:docker stop 容器名称

		启动某个容器:docker start 容器名称

		移除某个容器: docker rm 容器名称 (容器必须是停止状态)如果容器没停止,可以采取强制删除 加 -f 参数