Docker 镜像/容器命令、运维命令

镜像与容器的使用

镜像操作

  1. 在docker index中搜索image

    # docker search < image >
    docker search centos
    
  2. 拉取镜像(下载centos镜像)

    docker pull centos:latest
    
  3. 查看镜像

    # 列出images
    docker images
    
    # 列出所有的images(包含历史)
    docker images -a
    
    # 显示镜像的所有层(layer)
    docker images --tree 
    
    # 删除一个或多个image
    docker rmi  <image ID>
    
  4. 删除镜像

    docker rmi <镜像名或ID>
    
    # 删除 untagged images (id 为 <none> 的image)
    docker rmi $(docker images | grep "^<none>" | awk "{print $3}")
    
    # 删除全部 images
    docker rmi $(docker images -q)
    

容器操作

  1. 启动一个容器
    Docker允许启动一个伪tty终端,使用交互运行的方式启动一个容器,所用到的参数为:-t -i
    :centos为基础镜像,首先Docker会检查本地是否有centos镜像,如果没有就会连接官方维护的Docker Hub Regustry查看,一旦有就会下载该镜像并将其保存在本地宿主机中。

    # 基于centos镜像启动了一个容器
    docker run -it centos:latest /bin/bash
    
  2. 容器命名(名称必须唯一)
    启动容器Docker会创建为容器自动生成一个随机的名字;
    可以用 –name 标志来实现自己命名。

    # docker run -i -t <image> /bin/bash
    # 使用image创建container并进入交互模式, login shell是/bin/bash
    sudo docker run --name Luffy -it centos /bin/bash
    
  3. 查看容器

    # 列出当前所有正在运行的container
    docker ps
    
    # 列出最近一次启动的container
    docker ps -l:
    
    # 列出所有的container(包含历史,即运行过的container)
    docker ps -a :
    
    # 列出最近一次运行的container ID
    docker ps -q :
    
  4. 进入容器

    docker exec -it <name/ID> bin/bash
    
  5. 退出
    输入exit就可以返回到centos宿主机的命令行提示符了,一旦退出容器,/bin/bash命令也就结束了,容器也随之停止了运行。

    exit
    
  6. 重启容器
    :使用start是启动已经创建过得container,使用run则通过image开启一个新的container。

    # 开启/停止/重启container
    docker start/stop/restart <container> 
    
    # 停止所有container
    docker stop $(docker ps -a -q)
    
    # 再次运行某个container(包括历史container)
    docker start [container_id]
    
    # 映射 HOST端口到容器,方便外部访问容器内服务,host_port可以省略,省略表示把 container_port映射到一个动态端口
    docker run -i -t -p <host_port:contain_port>
    
  7. 删除容器

    # 删除一个或多个container
    docker rm <container...>
    
    # 删除一个正在运行的容器
    docker rm -f <>
    
    # 删除所有的container
    docker rm `docker ps -a -q`
    docker rm $(docker ps -a -q)
    
    # 同上,删除所有的container
    docker ps -a -q | xargs docker rm
    
  8. 进入容器
    连接一个正在运行的container实例(即实例必须为start状态,可以多个窗口同时attach 一个container实例)容器的主机名就是该容器的ID

    docker attach ****(容器ID或名)
    
  9. 查看ip主机配置

    cat /etc/hosts
    
  10. 将容器封装为一个镜像

    docker commit 6c4b67800f97(为容器名/ID) node:node1(为新的镜像名)
    
  11. 基于新镜像运行容器
    -p为端口映射

    docker run -it -d -p 88:80 --name test1 node:node1 /bin/bash
    

容器资源使用情况

默认输出

docker stats

默认情况下,stats 命令会每隔 1 秒钟刷新一次输出的内容直到你按下 ctrl + c。下面是输出的主要内容:

  • [CONTAINER]:以短格式显示容器的 ID
  • [CPU %]:CPU 的使用情况
  • [MEM USAGE / LIMIT]:当前使用的内存和最大可以使用的内存
  • [MEM %]:以百分比的形式显示内存使用情况
  • [NET I/O]:网络 I/O 数据
  • [BLOCK I/O]:磁盘 I/O 数据
  • [PIDS]:PID 号

请添加图片描述

只返回当前的状态

docker stats --no-stream

不想持续的监控容器使用资源的情况,可以通过 --no-stream 选项只输出当前的状态

只输出指定的容器

docker stats --no-stream registry 1493

查看个别容器的资源使用情况,可以为 docker stats 命令显式的指定目标容器的名称或者是 ID
:多个容器的名称或者是 ID 之间需要用空格进行分割(registry 和 1493 分别是容器的名称和容器的 ID)(不再显示默认的容器 ID,而是显示了我们传入的容器名称和 ID
请添加图片描述

可以通过简单的方式使用容器的名称替代默认输出中的容器 ID

docker stats $(docker ps --format={{.Names}})

格式化输出的结果

docker stats --format "table {{.Name}}\t{{.CPUPerc}}\t{{.MemUsage}}"

docker stats 命令支持我们通过 --format 选项自定义输出的内容和格式
请添加图片描述
自定义的格式中可以使用的所有占位符:

  • .Container 根据用户指定的名称显示容器的名称或 ID。
  • .Name 容器名称。
  • .ID 容器 ID。
  • .CPUPerc CPU 使用率。
  • .MemUsage 内存使用量。
  • .NetIO 网络 I/O
  • .BlockIO 磁盘 I/O
  • .MemPerc 内存使用率
  • .PIDs PID 号

除了以 table 格式输出结果,还可以通过 format 选项输出 json 格式的结果

docker stats --no-stream --format \
    "{\"container\":\"{{ .Container }}\",\"memory\":{\"raw\":\"{{ .MemUsage }}\",\"percent\":\"{{ .MemPerc }}\"},\"cpu\":\"{{ .CPUPerc }}\"}"

请添加图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值