容器知识图谱
2021-02-21 21:51:25   23  举报             
     
         
 AI智能生成
  docker
    作者其他创作
 大纲/内容
  容器就是一个进程, 这个进程拥有一个Namespace,通过Namespace, 
让进程有独立的文件系统,独立的进程,独立的网络等 .
应用程序作为该进程的子进程运行
  
    让进程有独立的文件系统,独立的进程,独立的网络等 .
应用程序作为该进程的子进程运行
 docker概念    
     image: 镜像文件, 用于生成容器实例  
     dockerfile: 用于生成image文件  
     repository: 用于存放image  
     docker原理    
     容器的本质一种进程隔离技术, 容器为进程提供了隔离环境
容器内的进行无法访问容器外的进程,
启动一个容器,该容器在主机上表现为一个进程, 容器内的
进程是容器进程的子进程
  
    容器内的进行无法访问容器外的进程,
启动一个容器,该容器在主机上表现为一个进程, 容器内的
进程是容器进程的子进程
 文件系统隔离, 类似于chroot 命令, 可以把某个目录设置为根目录  
     namespace隔离    
     文件系统隔离(Mount Namespace): 类似于chroot  
     进程通信隔离(IPC Namespace): 限制进程间的通信  
     进行隔离(PID Namespace)  
     用户隔离(user Namespace)  
     网络隔离(Network Namespace): 网络隔离  
     主机名隔离(UTS Namesapce)  
     cgroups    
     资源限制: 闲置任务可以使用的资源, 入CPU, 内存等  
     资源统计: 统计任务使用的资源情况  
     优先级分配  
     docker run -it --rm --cpu-period=100000 --cpu-quota=200000 centos /bin/bash
--cpu-period和 –cpu-quota 表示在每100毫秒的时间里,
运行进程使用的cpu时间最多为200毫秒(也就是要占用两个cpu)
  
    --cpu-period和 –cpu-quota 表示在每100毫秒的时间里,
运行进程使用的cpu时间最多为200毫秒(也就是要占用两个cpu)
 libcontainer    
     提供了简单的接口供用户调用  
     docker 并不直接使用Namespace和cgoups, 而是通过libcontainer提供的接口  
     dockerfile    
     FROM  
     RUN: 执行的命令, 可以有多个, 
每执行一次都会生成新的镜像层级
一般用于安装程序
  
    每执行一次都会生成新的镜像层级
一般用于安装程序
 CMD: 容器启动后默认执行的命令, 只能有一个CMD . 
如果docker run 命令指定了命令, 可以覆盖CMD命令
    如果docker run 命令指定了命令, 可以覆盖CMD命令
 ENTRYPOINT: 类似于CMD, 但是该命令的不会被覆盖, 
docker run 后面的命令会变为ENTRYPOINT的参数
    docker run 后面的命令会变为ENTRYPOINT的参数
 COPY: 复制上下文中的文件到镜像中, 仅仅复制目录中的内容, 不包含目录本身
  
     ADD: 是COPY的超集.
还可以解压, 或者是复制URL中的内容到镜像
    还可以解压, 或者是复制URL中的内容到镜像
 MAINTAINER: 作者  
     VOLUME: 挂载物理机的目录到容器的某个目录
还有其他挂载方式: docker run -v : 使用 -v实现挂载目录
    还有其他挂载方式: docker run -v : 使用 -v实现挂载目录
 ENV: 环境变量  
     EXPOSE: 可以使用的端口  
     WORKDIR: 工作目录, 基于centos的镜像的容器都是一样的目录结构  
     STOPSINGLE  
     LABEL  
     ARG  
     ONBUILD  
     SHELL  
     常用命令    
     构建镜像docker build -t jscp-app-002 .  
     运行容器docker run -d --name jscp-app-004 -p 7780:8080 jscp-app-004  
     查看容器日志docker logs --tail  300 -f  jscp-app-003  
     查看容器docker ps  
     进入容器
docker exec -it 8dba003f33de /bin/bash
  
    docker exec -it 8dba003f33de /bin/bash
 K8S  
    
 
 
 
 
  0 条评论
 下一页
  
   
   
   
   
  
  
  
  
  
  
  
  
  
  
 