• Docker理解


    近期一直在研究Docker,感悟颇深,和大家分享一下Docker 在云计算中的应用和Docker的原理。
    Docker 用法https://yeasy.gitbooks.io/docker_practice/content/

    • Docker 是什么?有哪些用途?
      • https://yeasy.gitbooks.io/docker_practice/content/introduction/what.html我的理解就是Docker提供简化版linux系统,它和宿主机使用同一内核 我们可以用 uname -a 去查看。 也就是说内核空间和宿主机相同,但是用户空间和宿主机不同,大家可以进入docker bash 看一下 里面也提供了类似Linux 根文件系统的结构,也有依赖库,一些可执行文件。我的理解就是Docker image 提供的容器就是一个根文件系统,类似chroot 方式进入这个文件系统,但是docker它提供了更强大的网络,分层机制。至于Docker 的用途很多,用于云计算,和web部署都十分方便,只需要提供一个自己做好的docker image就行了,其实就是一个根文件系统。docker run -it --rm test bash
        bash-4.3# ls
        bin etc lib mnt root sbin sys usr
        dev home media proc run srv tmp var
    • Docker镜像与容器
      Docker镜像是指从Docker hub上pull下来的image,当你run这个image的时候就形成了一个容器,容器是镜像的产生物,我们可以将容器的改动commit到镜像,否则容器内的改动不会影响镜像,也可以通过Dockerfile实现。

    • Pull下来的docker 镜像放哪里了?
      一般都放在/var/lib/docker/aufs/mnt里面,pull下来后就被解压,它是分层存储的,每次的commit都在不同的层。

    • Docker 性能怎么样?
      我试过11万连接的Websocket server 和 nginx server 都没有什么问题,docker也可以限制内存和cpu的使用量。

    • Docker 性能限制问题
      对于内核参数sysctl 配置,进入容器后发现根本就改不了,因为它挂载在一个只读分区上,方法就是run的时候加上–sysctl 和 –ulimit 参数或者就是加上–privileged 特权进入修改。主要限制就是文件描述符 --ulimit nofile=500000:500000 即可解决,但是实际情况就是即使你设置再大 连接数量就只能是65535个,这里还有一个十分重要的内核参数 net.ipv4.netfilter.ip_conntrack_max = 65536 这个默认是65536 这个意思说内核对连接进行跟踪,内核会建立相关结构去保存这些连接状态,把这个值改大一些就能解决65535限制。https://github.com/docker/docker/issues/29875
      可通过运行时加–sysctl实现,但是它的改动也会造成宿主机也跟着被改,所以直接改宿主机也可以实现。

  • 相关阅读:
    Unix/Linux系统编程-学习笔记-第一章
    vimrc配置文件
    MySQL 的 ERROR 1698 (28000): Access denied for user 'root'@'localhost'
    码云使用教程--Linux下用git命令上传和下载项目
    数电Verilog HDL设计
    Where do I belong (freeCodeCamp)
    Confirm the Ending
    数组中元素位置移动实现
    求一定范围内的素数
    回文数判断
  • 原文地址:https://www.cnblogs.com/MaAce/p/7755709.html
Copyright © 2020-2023  润新知