Docker使用笔记

Docker是一个轻量级的虚拟化解决方案,相对VMWare等完全封装的管理系统虚拟化技术,Docker只是利用Linux内核特性对进程进行了隔离。

Docker的好处

  1. Docker的好处主要体现在运维上

  2. 相对于KVM、VMWare等,性能较好

  3. 对环境依赖进行打包,方便部署和扩容

  4. 屏蔽应用差别,便于统一基线管理

  5. Docker自身的文件系统特性,发布系统分发的数据较小


Docker的原理

  1. Docker分为宿主机、镜像(Images)、容器(Container),宿主机是外部的操作系统,在此之上运行镜像,对镜像的每一次运行生成一个容器,同一个镜像生成的不同的容器之间会隔离。

  2. 容器内部是一系列的进程,Docker推荐容器只运行一个进程,进程可以在宿主机上看到。

  3. 容器采用Linux内核的namespace机制对包括网络、pid等进行隔离,利用cgroup进行资源(如可用CPU核数、内存)进行限制。

  4. 文件系统采用UnionFS,最早是使用aufs,现主要采用Devicemapper。在打包时,每一次修改会将修改覆盖在下层的文件系统之上,一层层叠加,最后覆盖一层可修改的文件层,保存是修改的部分,下层只读。

  5. 每个镜像都是分片保存,每次下载新镜像时,不会下载已存在的分片。

  6. 对于网络端口,有多种级别,可以映射(采用缓冲区复制),也可以共用宿主机端口

  7. Docker的守护进程采用sudo方式启动,所有docker命令均采用tcp或者管道方式和守护进程通讯,由守护进程执行

Docker的使用

  1. Docker需要Linux3.8以上内核

  2. Windows、Mac用户可以安装boot2docker,Mac可以用homebrew安装。boot2docker是用virtualbox虚拟了一个特制的linux系统。

  3. Mac下
    启动
    boot2docker up
    ssh到virtualbox内的特制Linux的命令行,之后可以使用Linux的命令。之后所有命令均执行在该环境中
    boot2docker ssh

Docker常用命令

  1. 启动docker守护进程
    docker -d

  2. 查看docker已下载镜像,
    注意IMAGE ID列,另外SIZE列的值在本地并不会存那么大的文件。
    指定一个镜像时采用 REPOSITORY: {TAG}的形式,如abc:abc
    docker images

  3. 下载镜像abc:abc
    docker pull abc:abc

  4. 启动镜像
    其中–name abc指出abc是别名,使用Container ID的地方可以换用别名。
    –net host表示共用宿主机上的端口
    -d表示按守护进程启动
    IMAGESIDdockerimages {REPOSITORY}:${TAG}的形式
    run命令相当于依次执行了create和start命令,create命令执行后
    docker run –name abc –net host -d ${IMAGEID}

  5. 查看容器
    docker ps

  6. 进入到Docker容器内的“终端”
    其中exec是在容器上执行一个进程
    -ti表示使用进程的标准输入输出
    ${CONTAINERID}是容器ID,可以从docker ps中得到,或者使用别名
    docker exec -ti ${CONTAINERID} /bin/bash

  7. 停止容器
    注意停止并不会删除运行时所做的修改,之后可以用restart重新启动
    docker stop ${CONTAINERID}

  8. 删除容器
    会删除该容器运行时所做的修改,可以采用-f参数强制停止容器后删除
    docker rm ${CONTAINERID}

  9. Docker打包
    .表示在当前目录寻找Dockerfile文件,该文件说明了打包方法
    Dockerfile总是from从一个镜像开始,修改叠加,最终变成新的镜像
    其中CMD命令只能出现一次,会在容器启动时执行
    docker build -t abc:abc .

  10. 发布
    docker push abc:abc

  11. 查看镜像打包历史,从下至上
    docker history ${IMAGEID}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值