docker常用操作命令

  • volume相关指令
    Command Description
    docker volume create Create a volume
    docker volume inspect Display detailed information on one or more volumes
    docker volume ls List volumes
    docker volume prune Remove unused local volumes
    docker volume rm Remove one or more volumes
    docker volume update Update a volume (cluster volumes only)

  • 查询依赖

    docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)

    xxxxxx标识的就是被依赖的image id

  • this deletes ALL STOPPED containers, images, volumes.

    docker system prune --all --volumes
  • 创建
    可以在hub.docker.com上创建一个新的repo,或者自己复制一个现有的repo.
    绑定github后,也可以直接通过Dockerfile来发生成最新的镜像

  • 查看镜像列表

    docker images
  • 查看容器列表

    docker ps
  • 查看所有的容器

    docker ps -a
  • 查看最近创建的容器

    docker ps -l
  • 查找在指定 image 之后创建的 image 中的父 image

    docker image inspect --format='{{.RepoTags}} {{.Id}} {{.Parent}}' $(docker image ls -q --filter since=xxxxxx)
  • 获取镜像

    docker pull name/reponame
  • 删除

    docker rm          Remove one or more containers
    docker rmi         Remove one or more images
  • 删除已经退出运行的容器

    docker ps -a | grep "Exited" | awk '{print $1 }'|xargs docker rm
  • 删除none镜像

    docker images |grep none |awk '{print $3}'|xargs docker rmi
  • 要删除全部image的话

    docker rmi $(docker images -q)
  • 停止所有容器
    停止容器,才能删除所包含的image

    docker stop $(docker ps -a -q)
  • ssh登录docker
    在开发阶段免不了需要ssh上去进行现场配置。
    从ssh启动docker:

    docker run -it  username/imagename /bin/bash

    ssh登陆,并挂载本地目录,默认读写权限:

    docker run -it -v 宿主绝对路径:docker绝对路径 username/imagename /bin/bash

    这样启动的入口进程是bash,整整需要启动的服务进程,再此模式下要自己手动启动

  • attach

    docker attach --sig-proxy=false $CONTAINER_ID

    如果当前的不是bash,attach上去也无法进行ssh,只有是上面这种直接启动ssh并后台运行的情况,attach上去,才进入ssh

  • exec
    在Docker1.3版本开始,提供了一个更方便的命令exec。可以直接在容器内运行命令。所以我们ssh登录docker最方便的是exec:

    docker exec -ti 7f16264f7ab4 /bin/bash
  • detach
    docker没有专用的命令,目前不能使用eixit,因为会导致主进程退出。使用ctl+p+ctl+q来detach当前的进程

  • 查看底层信息,比如IP等

    docker inspect --format='{{.NetworkSettings.IPAddress}}' $CONTAINER_ID
  • commit
    docker commit CONTAINER_ID docker_hub用户名/镜像名:tagname

  • push

    docker push docker_hub用户名/镜像名:tagname
  • docker hub的使用
    如果你使用hub.docker.com来管理你的镜像,那么就涉及到账户登录,如果你docker pull时遇到如下的提示:

    unauthorized: incorrect username or password

    那么说明你登录信息过期了,需要重新登录:

    docker login
  • 查看日志
    查看最新30分钟的日志:

    docker logs --since 30m CONTAINER_ID

    其他需求,请详细查看logs 的参数

  • 查看详细信息
    docker inspect id|name

  • 其他参考
    资深专家都知道的 Docker 常用命令---源英文:Top Docker Commands Any Expert Should Know
    Docker之容器的创建、启动、终止、删除、迁移等
    docker入门——构建镜像

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注