
【关于Docker】
一、Docker是什么
容器是一个标准的软件单元,它将代码及其所有依赖关系打包,以便应用程序从一个计算环境快速可靠地运行到另一个计算环境。Docker容器映像是一个轻量级,独立的可执行软件包,包含运行应用程序所需的一切:代码,运行时,系统工具,系统库和设置。
二、Docker使用场景
Docker可用于应用的打包与部署自动化,创建轻量、私密的PAAS环境,实现自动化测试和持续的集成/部署,部署与扩展webapp、数据库和后台服务。
三、Docker相关软件
LXC:Linux Container容器是一种内核虚拟化技术,可以提供轻量级的虚拟化,以便隔离进程和资源。Docker基于LXC开发,提供了更强的功能,诸如:自动化构建、版本控制、组件重用、镜像共享等。
OpenStack:OpenStack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。OpenStack和Docker之间是很好的互补关系。Docker的出现能让IaaS层的资源使用得更加充分,因为Docker相对虚拟机来说更轻量,对资源的利用率会更加充分。
KVM:KVM是集成到Linux内核的Hypervisor,是X86架构且硬件支持虚拟化技术(Intel VT或AMD-V)的Linux的全虚拟化解决方案。它是Linux的一个很小的模块,利用Linux做大量的事,如任务调度、内存管理与硬件设备交互等。
VMWare:VMWare (Virtual Machine ware)是一个“虚拟PC”虚拟机管理管理软件。它的产品可以使你在一台机器上同时运行二个或更多Windows、DOS、LINUX系统。与“多启动”系统相比。


【Docker快速开始】
一、安装Docker
https://docs.docker.com/install/overview/
Docker安装使用特别简单,此处不再赘述,请参考网上相关博客,或前往官网查询相关文档,具体安装可能会涉及升级内核,关闭SELinux,或者防火墙等,如何操作,视安装环境而定。此处给出官网安装文档地址,请各位看官移步查看。
二、简单尝试
1、镜像管理
pull:docker pull centos:6.10;
此处是指从官方library下载一个6.10版本的centos到本地镜像仓库,其中library是缺省参数,版本号6.10为非必填参数,若不填写版本号,则默认版为最新版本,也就是latest。若想下载非官方仓库,请在centos加入账号空间,例如: docker pull pivotaldata/centos:6 。即可下载pivotaldata账户构建的centos6,在DockerHub里,版本既标签。
images:docker images ;
此命令将列出已下载到本地仓库的镜像文件,若镜像文件过多不方便查找,可以使用通配符过滤想要的内容,例如:docker images centos*,将会列出所有centos开头已下载的本地仓库。
rmi:docker rmi [仓库:版本|镜像ID]
rmi用于删除本地镜像,后面可传入仓库名:版本 或 镜像ID,其中镜像ID可以通过images命令检索到,两种方法皆可删除想要删除的镜像文件,注意:若镜像已被容器引用,则删除失败。举例如下:docker rmi centos:6.10,docker rmi 905bf115f76b
2、容器管理
容器:Docker里的容器基于镜像构建,镜像属于分层构建,容器原理类似,容器=镜像+运行时,容器是镜像的一个示例,用面向对象的思想来描述就是,容器属于创建的对象,镜像属于创建该容器的类。容器属于计算机进程。
run:docker run [args] repository:tag ;
使用run命令可以启动一个容器,run命令有许多参数需要掌握,例如:--name 指定容器名,-it 打开一个交互式的输入窗口,-d 容器作为后台进程运行,-p 指定映射定宿主机和容器的映射端口。例如:
docker run -it -d --name centos_test -p 80:80 centos:6.10 bash. 启动centos,
我们通过 docker ps -n 10 就可以查看到刚才启动好的centos和对应的状态。若指定的容器名称也就是--name 重复,启动将报错。
attach:docker attach [container_id|name] ;
使用attach可以进入容器状态为up的容器,参数可以为 --name 指定的参数和容器启动后系统分配的容器ID,我们进入刚才启动的容器:docker attach centos_test。当然进入容器还可以使用exec命令,具体请自行查询资料,此处不再赘述。
ctrl+p+q:退出容器使用快捷键Ctrl + p +q ,切勿使用 exit ,这样将会导致容器主进程退出,也就是容器退出。
以上为docker基础操作,接下来,我们将学习docker的进阶内容,包括网络,存储,镜像构建分发,集群初识,实战案例,填坑指南等内容





