-
查询依赖
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)
-
停止所有容器
停止容器,才能删除所包含的imagedocker 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入门——构建镜像