天天看点

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 .

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

docker images

  • ##运行一个镜像

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.6

  • ##查看所有状态的容器

docker ps -a

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

docker exec -it dbserver /bin/sh

     Docker attach可以attach到一个已经运行的容器的stdin,然后进行命令执行的动作。 

     但是需要注意的是,如果从这个stdin中exit,会导致容器的停止。

  • ##查删除镜像

docker rm -f dbserver

  • ##停止镜像,后面这个是id 可以不用敲全,找的到就可以了

docker stop d03 

  • ##ENTRYPOINT/CMD区别

ENTRYPOINT/CMD都只能在文件中存在一次,并且最后一个生效 多个存在,只有最后一个生效,其它无效!

需要初始化运行多个命令,彼此之间可以使用 && 隔开,但最后一个须要为无限运行的命令,需切记!

ENTRYPOINT,表示镜像在初始化时需要执行的命令,不可被重写覆盖,需谨记 但是使用--entrypoint 也可以覆盖

CMD,表示镜像运行默认参数,可被重写覆盖

停止所有的container,这样才能够删除其中的images:

docker stop $(docker ps -a -q)
           

如果想要删除所有container的话再加一个指令:

docker rm $(docker ps -a -q)
           

参考资料:

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

版权声明:本文为CSDN博主「weixin_34313182」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_34313182/article/details/92088269