Docker常用命令

Docker常用命令

Docker镜像命令

  • docker images
    • 查看所有的images
  • docker images|grep voyage|grep none|awk '{print $3 }'|xargs docker rmi
    • 删除所有指定标签的images
  • docker pull
    • 例如docker pull 10.37.210.125:5001/contiv/netplugin:1.2.0_6.3, 会默认加https:// 使用安全链接下载镜像
    • 如果想使用http:// 非安全的链接下载镜像,需要修改docker 配置/etc/docker/daemon.json,如下:
    {
  "storage-driver": "devicemapper",
  "storage-opts": [
    "dm.basesize=20G"
  ],
  "insecure-registries": ["10.37.210.125:5001", "10.37.218.29:5000"]
}
  • docker save

    • 把本机镜像拷贝出来成一个文件,例如 docker save pause:3.0 -o myimage.rar
  • docker load

    • 加载指定镜像,例如:docker load -i golang-1.2.0.tar
  • docker tag

    • 给docker镜像添加一个新的tag, 例如: docker tag 10.37.1.2:5001:5001/contiv:0.1 tag 10.37.1.2:5001:5001/net:0.1
  • docker build

    • 构建镜像到指定位置.eg: docker build -t 10.37.1.2:5001/contiv/netplugin:sj-001 ./ -f Dockerfile
    • 如果是基于某个原始镜像进行编译,那么编译的环境必须有该镜像即先要docker pull下基础镜像再进行编译
  • docker push

    • 推送镜像或者repository到镜像仓库. eg: docker push 10.37.210.125:5001/contiv/netplugin:test-001
  • docker rmi xxx

    • 删除某个镜像

Docker 生命周期管理命令

  • docker run

    • docker run -d busybox:glibc sleep 100
      用镜像busybox:glibc运行一个新的容器;-d表示在后台运行;因为该镜像没有持续的进程,如果不加sleep 100会马上退出。如果容器脚本有命令参数,那么也需要加上,例如:
      docker run iperf:3.0 -s
    • docker run -d --network host busybox:glibc sleep 100
      这里指定容器使用的网络模式是host,默认为docker0 bridge模式。另外还可以是none,或者container模式.
  • docker stop
    停止退出一个正在运行的容器

  • docker start
    启动一个或多个已经停止的容器

  • docker restart
    重启一个或多个容器

  • docker pause/unpause
    暂停一个容器中的所有进程,该容器不能执行exec 命令, 也不能rm 被删除

Docker Debug命令

  • docker inspect

    • 查看容器的详细信息,包含启动脚本和环境变量
    • 进入容器和网络的netns命名空间的方法
      1. docker ps 查看容器的id
      2. docker inspect <容器id>|grep Pid //获取容器进程号
      3. ln -s /proc/<容器进程号>/ns/net /var/run/netns/<容器id> //将进程网络命名空间恢复到主机目录, 如果/var/run/netns目录不存在,以root用户手动创建目录即可。
      4. 执行ip netns 命令即可看到容器的网络命名空间
      5. nsenter -t <容器进程号> -n -F -- ip a //到容器命名空间中执行命令ip a
  • docker ps --no-trunc

    • 可查看完成容器ID
  • docker exec

    • 在docker容器内部执行IP命令: docker exec -ti 12345678 ip
    • 根据独一无二的容器名,在该容器内部执行bash命令:
      docker exec -it `docker ps |grep docker-unique-name|awk '{print $1}'|awk FNR==1` bash
  • docker network 容器网络相关命令

    • docker network prune 删除不被容器使用的所有网络资源,例如端口。容器删除后,端口仍被占用需要用这个命令回收

Docker 容器使用资源查看

  • docker stats docker-ID
原文地址:https://www.cnblogs.com/janeysj/p/11175962.html