docker常用操作命令

  • 查询依赖

    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入门——构建镜像

发表回复

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