Docker 容器管理

容器创建后,会存储在宿主机上:linux上位于/var/lib/docker/containers下。  

 

虚拟机的生命周期

 

容器的生命周期

 

容器的创建    create

  1. 作用:  
  2.     利用镜像创建出一个Created状态的待启动容器  
  3. 命令格式:  
  4.     docker create [OPTIONS] IMAGE [COMMAND] [ARG...]  
  5. 命令参数:查看更多  
  6.     -t, --tty       分配一个伪tty,也就是分配虚拟终端  
  7.     -i      即使没连接,保持STDIN打开  
  8.     --name      为容器起个名字,没有会随机命名  

 

容器启动    start

  1. 作用:  
  2.     将一个或者多个创建状态或者停止状态的容器启动  
  3. 命令格式:  
  4.     docker start [OPTIONS] CONTAINER [CONTAINER...]  
  5. 命令参数:  
  6.     -a  将当前的shellSTDOUT/STDERR 连接到容器上  
  7.     -i  将当前shellSTDIN连接到容器上  

 

结论:

    -a 参数指定后执行完 容器为退出状态  

容器创建并启动    run

  1. 作用:  
  2.     利用镜像创建一个启动的容器  
  3. 命令格式:  
  4.     docker run [OPTIONS] IMAGE [COMMAND] [ARG...]  
  5. 命令参数:  
  6.     -t, --tty       分配一个伪tty,也就是分配虚拟终端  
  7.     -i  将当前shellSTDIN连接到容器上  
  8.     -d  在后台运行并且打印出容器ID  
  9. --name  为容器起个名字,没有会随机命名  
  10.     --rm    容器退出后,自动删除容器  

 

区别:

docker run 相当于 docker create + docker start -a       前台模式

 

docker run -d 相当于 docker create + docker start       后台模式

 

  1. 总结:  
  2.     默认我们利用镜像来启动容器,用docker run 命令来进行  

 

容器暂停和取消暂停    pause    unpause

 

  1. 作用:  
  2.     暂停或取消暂停一个启动的容器  
  3. 命令格式:  
  4.     docker pause/ unpause CONTAINER [CONTAINER...]  

 

 

容器关闭和杀死    stop    kill

 

  1. 作用:  
  2.     将一个或者多个暂停或者运行的容器stop  
  3.     强制并立即关闭一个或多个处于暂停状态或者运行状态的容器  
  4. 命令格式:  
  5.     docker stop/ kill [OPTIONS] CONTAINER [CONTAINER...]  
  6. 命令参数:  
  7.     -t  容器关闭前等待的时间  默认10s  (stop)  
  8.     -s  给指定容器关闭信息,默认kill    (kill)  

 

 

区别:

  1. 前提知识点:   
  2. Linux其中两种终止进程的信号是:SIGTERMSIGKILL   
  3.     
  4. SIGKILL信号:无条件终止进程信号。进程接收到该信号会立即终止,不进行清理和暂存工作。该信号不能被忽略、处理和阻塞,它向系统管理员提供了可以杀死任何进程的方法。   
  5.     
  6. SIGTERM信号:程序终结信号,可以由kill命令产生。与SIGKILL不同的是,SIGTERM信号可以被阻塞和终止,以便程序在退出前可以保存工作或清理临时文件等。   
  7.     
  8. docker stop 会先发出SIGTERM信号给进程,告诉进程即将会被关闭。在-t指定的等待时间过了之后,将会立即发出SIGKILL信号,直接关闭容器  
  9.     
  10. docker kill 直接发出SIGKILL信号关闭容器。但也可以通过-s参数修改发出的信号。  
  11.      
  12. 因此会发现在docker stop的等过过程中,如果终止docker stop的执行,容器最终没有被关闭。而docker kill几乎是立刻发生,无法撤销  
  13.     
  14. 此外还有些异常原因也会导致容器被关闭,比如docker daemon重启、容器内部进程运行发生错误等等"异常原因   

 

容器重启    restart

  1. 作用:  
  2.     重启一个或多个处于运行状态、暂停状态、关闭状态或者新建状态的容器  
  3.     该命令相当于stopstart命令的结合  
  4. 命令格式:  
  5.     docker restart [OPTIONS] CONTAINER [CONTAINER...]  
  6. 命令参数:  
  7.     -t  重启等待时间 默认10s  

 

 

容器删除    rm

  1. 作用:  
  2.     删除一个或者多个容器  
  3. 命令格式:  
  4.     docker rm [OPTIONS] CONTAINER [CONTAINER...]  
  5. 命令参数:  
  6.     -f  强制删除  
  7.     -v  同时删除绑定的数据卷  

 

容器其他操作    inspect    logs rename

Inspect:        详细信息
  1. 命令格式:  
  2.     docker inspect [OPTIONS] NAME|ID [NAME|ID...]  
  3. 命令参数:  
  4.     -f  利用特定Go语言的format格式输出结果  
  5.     -s  显示总大小   

 

 

logs:        日志信息
  1. 命令格式:  
  2.     docker logs [OPTIONS] CONTAINER  
  3. 命令参数:  
  4.        --details        显示日志的额外信息     
  5.        -f, --follow             动态跟踪显示日志信息        
  6.        --since string   只显示某事时间节点之后的             
  7.        --tail string        显示倒数的行数(默认全部)     
  8.        -t, --timestamps         显示timestamps时间        
  9.        --until string       只显示某事时间节点之前的  
  10. 注意容器日志中记录的是容器主进程的输出STDOUTSTDERR   

 

rename:        容器重命名
  1. 命令格式:  
  2.     docker rename CONTAINER NEW_NAME  

 

 

容器运行时 连接

docker attach
  1. 作用:  
  2.     将当前终端的STDINSTDOUTSTDERR绑定到正在运行的容器的主进程上实现连接   
  3. 命令格式:     
  4.     docker attach [OPTIONS] CONTAINER   
  5. 命令参数(OPTIONS)        
  6.        --no-stdin      不绑定STDIN   

 

Exec 容器中执行新的命令

 

  1. 作用:       
  2.       在容器中运行一个命令   
  3. 命令格式:     
  4.       docker exec [OPTIONS] CONTAINER COMMAND [ARG...]   
  5. 命令参数(OPTIONS)    
  6.       -d, --detach          后台运行命令    
  7.       -i, --interactive     即使没连接容器,也将当前的STDIN绑定上     
  8.       -t, --tty             分配一个虚拟终端      
  9.       -w, --workdir string  指定在容器中的工作目录       
  10.       -e, --env list        设置容器中运行时的环境变量   

 

我们平时连接的时候用 it参数

 

 

总结

 

原文地址:https://www.cnblogs.com/py-web/p/11887278.html