docker 从零开始

docker 包括三个基本概念
    1.镜像(Image)
    2.容器(Container)
    3.仓库(Repository)
docker的特性:
    1.文件系统隔离:每一个进程容器运行在彻底独立的根文件系统里。
    2.资源隔离:可使用cgroup为每一个进程容器分配不一样的系统资源,例如CPU和内存。
    3.网络隔离:每一个进程容器运行在本身的网络命名空间里,拥有本身的虚拟接口和IP地址。
    4.写时复制:采用写时复制方式建立根文件系统,这让部署变得极其快捷,而且节省内存和硬盘空间。
    5.日志记录:Docker将会收集和记录每一个进程容器的标准流(stdout/stderr/stdin),用于实时检索或批量检索。
    6.变动管理:容器文件系统的变动能够提交到新的映像中,并可重复使用以建立更多的容器。无需使用模板或手动配置。
    7.交互式Shell:Docker能够分配一个虚拟终端并关联到任何容器的标准输入上,例如运行一个一次性交互shell。
    docker安装与启动
  • ##构建一个docker 镜像

docker build -t cdphere/mysql:5.6 .java

  • ##查看有哪些镜像文件

docker imagesmysql

  • ##运行一个镜像

docker run -d -p 3306:3306 --name dbserver csphere/mysql:5.6
              -P 大写的p 指定的端口 后面重启宿主主机的端口与容器暴露的端口会变化 
docker run -d -p 3306:3306 --name dbserver -v /var/lib/docker/vfs/dir/mydata:/var/lib/mysql csphere/mysql:5.6git

  • ##查看全部状态的容器

docker ps -aspring

  • ##进入docker容器中(交互式)

docker exec -it dbserver /bin/sh
     Docker attach能够attach到一个已经运行的容器的stdin,而后进行命令执行的动做。 
     可是须要注意的是,若是从这个stdin中exit,会致使容器的中止。sql

  • ##查删除镜像

docker rm -f dbserverdocker

  • ##中止镜像,后面这个是id 能够不用敲全,找的到就能够了

docker stop d03 shell

  • ##ENTRYPOINT/CMD区别

ENTRYPOINT/CMD都只能在文件中存在一次,而且最后一个生效 多个存在,只有最后一个生效,其它无效!
须要初始化运行多个命令,彼此之间可使用 && 隔开,但最后一个需要为无限运行的命令,需切记!
ENTRYPOINT,表示镜像在初始化时须要执行的命令,不可被重写覆盖,需谨记 可是使用--entrypoint 也能够覆盖
CMD,表示镜像运行默认参数,可被重写覆盖网络

 

中止全部的container,这样才可以删除其中的images:ui

docker stop $(docker ps -a -q)

若是想要删除全部container的话再加一个指令:.net

docker rm $(docker ps -a -q)

参考资料:

http://git.oschina.net/itmuch/spring-cloud-book