docker入门

一、介绍1、 Docker的特性:文件系统隔离:每个进程容器运行在一个完全独立的根文件系统里。
  
  资源隔离:系统资源,像CPU和内存等可以分配到不同的容器中,使用cgroup。
  
  网络隔离:每个进程容器运行在自己的网络空间,虚拟接口和IP地址。
  
  日志记录:Docker将会收集和记录每个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
  
  变更管理:容器文件系统的变更可以提交到新的映像中,并可重复使用以创建更多的容器。无需使用模板或手动配置。
  
  交互式shell:Docker可以分配一个虚拟终端并关联到任何容器的标准输入上。
  
  2、docker 应用场景加速本地开发:快速搭建好开发环境和运行环境。
  
  自动打包和部署应用。
  
  创建轻量级的私有Paas环境。
  
  自动化测试和持续集成。
  
  创建安全沙盒。
  
  二、环境搭建:对Linux环境有两个要求,一是64位系统,二是内核在3.8以上。 下面以centos 上搭建为例:仓库用来保存我们的images,当我们创建了自己的image之后我们就可以使用push、pull命令从公有或者私有仓库下载、上传镜像;Docker Registry私有服务器用于保存管理我们的私有镜像。
  
  需要注意的是CentOS 6.X与7.0的安装是有一点点不同的,CentOS-6上docker的安装包叫docker-io,并且来源于Fedora epel库,这个仓库维护了大量的没有包含在发行版中的软件,所以先要安装EPEL,而CentOS-7的docker直接包含在官方镜像源的Extras仓库(CentOS-Base.repo下的[extras]节enable=1启用)。前提是都需要联网。
  
  的具体安装启动过程如下。
  
  的安装启动过程如下三、基本操作&命令简单查询:从长款查询容器。
  
  查看镜像设置镜像相关:查看所有本地镜像。
  
  下载镜像:eg: docker pull centos  等级删除镜像(前提:镜像启动的容器都已经被删除。)
  
  本地镜像的总描述文件( 注意centos 6.8 没有var/lib/docker/image/文件夹, 在docker 1.10 后,容器的所有配置文件同意移动到了 /var/lib/docker/image文件夹中)
  
  本地单个镜像的文件:保存着关于这个镜像的元数据一个整数,表示layer的大小。
  
  存储: 一个镜像就是的基础是一系列的layers,   一个docker 镜像就是一组制度的layer组成,之前: docker images --tree  可以查看一个镜像包含的所有1.7之后:容器储存储位置由于目Docker支持AUFS,Btrfs,Device mapper,OverlayFS,ZFS五种存储驱动,所有各自存储的位置是不一样的命令查看 docker image   结构 :首先会提示内核版本过低复制代码容器相关:查询当前启动的容器,   docker ps -a  (所有的包含停止的)
  
  停止容器可以启动一个已经停止的容器删除停止的容器启动一个容器 , 参数说明-d  后台运行合用, 交互模式运行指定网络, 默认bridge (会使用172段的ip依次分配给启动的docker 容器), host  模式为共享主机的网络配置和端口。
  
  -p 当net不为host 模式时, 将容器的端口 映射到宿主机器的端口上。
  
  指定容器的ip-e 环境变量设置这个命令是从容器内复制文件到指定的路径上镜像保存1: 导入导出容器为镜像 export & import :注意导出只是容器的静态文件快照,docker file 描述将会丢失。
  
  导入发布为本地的一个镜像。
  
  镜像保存2:导入导出镜像为镜像 2 save & load:或者   docker save -o save.tar imageName:version保存镜像,包含layers ,和或镜像保存3:   commit ,提交当前容器为一个镜像所谓docker damemon 即为docker server 主进程,增加了新功能(http://www.lxinyul.cc /news/detail/54953),从这个版本以后,用户在Linux上跑Docker时都不必再以root权限运行了。
  
  1.10之前所有容器都只能在Docker daemon下以root权限运行。
  
  安全的命名空间. 通过命名空间,Docker 1.10将Docker daemon和容器区别开来,对二者的权限分别加以处理,同时为各个容器分配相应的权限等级。在1.10下,Docker daemon仍然要取得主机的root权限,但容器就可以不用了。
  
  传统的容器管理工具 LXC 即将退出 Docker 的舞台,在 Linux 内核版本 3.10+ 上,使用内嵌的 overlay 驱动来完成跨主机的网络互联在docker 1.10以前: 启动dokcer server 实际执行命令为:设置dns使用设置dns搜索域输出调试在docker 1.10 后:进入容器内部:老方式容器网络列出所有容器的网络id ,和网络模式列出网络的详细信息为运行中容器创建网络相关时以每个镜像为基础设置环境变量把宿主机器上的文件添加的镜像中, 请使用绝对路径容器启动时默认工作目录是指build 过程中随便执行的命令, 例如在镜像中创建文件等。
  
  讲宿主本地目录挂载到容器上设置容器启动的时候执行的命令启动时执行的命令,但是一个Dockerfile中只能有一条ENTRYPOINT命令,如果多条,则只执行最后一条ENTRYPOINT没有CMD的可替换特性四、镜像tqtestjava:2.0 制作,tqtestjava:2.0 是一个userauth 和userauthweb的运行环境,容器启动的功能包括:1、能够在容器内部自动更新svn代码.
  
  2、自动mvn install ,自动启动两个3、容器的端口自动映射.
  
  4、容器打包下载一个基础的centos 镜像,以交互模式启动centos 容器:  docker run -d -ti  centos /bin/bash,进入容器bash后,安装yum , net ,  jdk, svn ,maven , svn co 社管代码到 /usr/local/project/zhejiange 下, 编写启动脚本(这里需要注意的是我一开始讲许多环境变量设置在/etc/profile 中,其实对docker 来说,这可能是无效的,因为docker 的许多镜像,都市linux 精简版本 ,系统启动也仅仅加载必要的资源),所以需要我们在docke run 是指定环境变量,或者在dockerfile 中指定(固定不变的话)。
  
  提交镜像:5、tqtestjava:1.0 虽然有了我们需要自行的环境, 我们也可以以交互模式进入,启动我们的应用,但是如果要让我们的应用在容器启动的时候自动启动应用, 需要 在docker run 命令后面拼接以系列的环境变量, 换需要手动指定docker 启动的时自行的脚本, 工作目录等。
  
  例如:复制代码这对使用人员来说不太方面。
  
  所以我们编写复制代码然后执行:这样我们就新生成了一个 tqtestjave:2.0 镜像。
  
  最后执行: docker -d  --net=host  tqtestjave:2.0   就可以实现启动容器时应用自启动了6、网络选择: 这里我们选择host 模式, 不是说host 模式好,而且线上也不建议使用host模式。  而且因为如果我们选择bridge 模式,需要在路由器上设置一个172段的路由网关,同时固定宿主机器上分配的docker 容器的ip 段。   这适合于有网络经验的人来搞。
  
  五、的所有命令可以通过一系列的restful www.yyzx66.cn/ 的API , www.jyz8888.cn 这对生产环境编写漂亮发布,部署脚本十分有效可以等级与:可以等级与:默认情况下 Docker 的守护进程启动会生成一个 socket (/var/run/docker.sock www.zgktv.cn )进程通信文件,而并没有监听端口,只能在本机操作 Docker。如果想在其它地方操作 Docker www.ty6666.cn 主机,就需要让 Docker 主机监听一个端口号,这样可以通过端口号就能实现远程操作。
  
  1、对于手动启动的docker daemon :可以这样配置2、修改为3、Red Hat 7系列#修改other_args 的值
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值