docker使用管理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker使用管理相关的知识,希望对你有一定的参考价值。

  • 容器生命周期
  • docker命令获取帮助
  • docker的常用命令
  • docker基本操作
  • 镜像管理

  • 容器生命周期
    技术分享图片
    运行容器一个实例:
    #docker run -it --rm --name bbox busybox:latest /bin/sh
    当运行这条指令后的执行流程步骤:
    1.检查本地是否存在指定的镜像,不存在则从registry下载;
    2.利用镜像启动容器
    3.分配一个文件系统,并且在只读的镜像层之外挂载一个可读写层;
    4.从宿主机配置的网桥接口桥接一个虚拟接口给此容器;
    5.从地址池中分配一个地址给容器;
    6.执行用户指定的应用程序;
    7.程序执行完成后,容器即终止
    注意:容器是为任务而生,任务完成即销毁,释放资源。为单一任务(进程)设计

  • docker命令获取帮助
    man ,docker --help...
    用法:docker [OPTIONS] COMMAND
    docker COMMAND --help 获取单个指令的详细用法

  • docker的常用命令
    环境信息相关:
    info
    version :查看当前安装版本信息
    系统维护相关:
    images :查看本地镜像
    inspect:查看docker对象的详细信息,json格式
    build:构建镜像
    commit :基于已有容器创建镜像
    pause/unpause :暂停(恢复)当前运行容器
    ps:查看当前在运行的容器
    rm :删除 docker ps -qa |xargs docker rm -f
    rmi :删除镜像 docker images -qa |xargs docker rmi 删除 所有镜像
    run:运行容器
    start/stop/restart:启动、停止、重启容器
    top:用于查看正在运行的容器中的进程的运行状态
    kill:终止当前运行的某个容器
    ...
    日志信息相关:
    events
    history
    logs:查看容器运行日志
    Docker hub服务相关:
    login:登录仓库
    logout
    pull:从仓库拉取镜像到本地
    push:将镜像推送至某仓库
    search:搜索镜像

  • 基本操作:

    • 启动一个nginx容器,使其在后台运行并将其80端口映射到宿主机8080端口
      docker run -d -p 8080:80 httpd
      docker run常用选项:
      -t:配置一个伪终端并绑定到容器的标准输入上
      -i:让容器的标准输入保持打开
      -d:将容器放入后台运行
      -c:指定分配该容器的cpu分片
      -m:指定分配给该容器的内存大小,单位为B,K,M,G
      --name:为容器分配指定名称
      --rm:当容器退出时自动删除容器
      [[email protected] ~]# docker run -it --rm alpine:latest /bin/ls 
      bin    etc    lib    mnt    root   sbin   sys    usr
      dev    home   media  proc   run    srv    tmp    var
      [[email protected] ~]# docker run -it alpine:latest /bin/ls 
      bin    etc    lib    mnt    root   sbin   sys    usr
      dev    home   media  proc   run    srv    tmp    var
      [[email protected] ~]# docker ps -a
      CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAME
      S49aedd5aca20        alpine:latest       "/bin/ls"           10 seconds ago      Exited (0) 8 seconds ago                       joll
      y_goldwasser
    • 把容器运行在前台:启动一个alpine容器输出 hello world,打印完即退出
      [[email protected] ~]# docker run --rm alpine:latest /bin/echo "hello woeld"<br/>hello woeld<br/>
    • 容器运行在后台:
      docker run -d alpine:latest /bin/sh -c "while true; do echo hello world; sleep 1;done"

    服务类容器需要长期运行,所以使用daemon的方式运行;而工作类环境通常是给我们提供一个临时的工作环境,所以一般以run –ti的方式在前台运行

    • 查看当前节点上的容器状态
      docker ps #查看当前正在运行的容器
      选项:
      -a:查看所有容器,包括停止的
      -q:只显示容器ID
      -l:显示最后一次创建的容器`
  • 镜像管理操作

    • 获取镜像
      docker pull name:tag #镜像直接从官方网站下载
      docker pull xuetong.com:5000/centos:6.6 #从指定仓库下载
    • 查看镜像
      docker images
      docker inspect centos:latest #获取镜像的详细信息
    • 镜像打标签
      docker tag centos:latest xuetong.com:5000/centos:6.6
    • 搜索镜像
      docker search NAME:tag
      建议直接到官方网站搜索:https://hub.docker.com/explore/
    • 镜像导入导出
      docker  save  -o  /PATH/TO/SOMEFILE.TAR  NAME[:TAG]     
      docker  load  -i  /PATH/FROM/SOMEFILE.TAR 
      docker image load -i /root/centos-latest.tar.xz 
    • 删除镜像
      docker rmi name:tag
      如果一个镜像有多个tag,只会删除指定的tag,镜像本身不会删除,如果docker rmi后指定镜像ID,则所有tag都会被删除
    • 创建镜像:commit(根据现有镜像创建),不建议使用这种方法,无获取构建过程,建议使用dockerfile构建。

以上是关于docker使用管理的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Android片段管理器传递变量[重复]

Android:使用支持片段管理器时复制片段

massCode 一款优秀的开源代码片段管理器

#VSCode保存插件配置并使用 gist 管理代码片段

markdown [Docker] Docker片段列表和命令#linux #docker #snippets

如何管理在每个 git 版本中添加私有代码片段?