Docker常用命令整理
因为工作需要接触到了Docker,发现这个东西是真的好用。容器带来的隔离效果对我这种强迫症患者太友好了。学一个新的框架或者数据库,docker搞起来,无论怎么糟蹋怎么设置,出现小问题啥的直接移除这个容器,再创个干净的新的重头再来,少了很多配置的烦恼,电脑上也不用装很多乱七八糟的东西!所以这篇文章就记录下最近自己整理的常用的docker命令,以便后续翻阅。
由于国内网络环境的缘故,要使用国内源安装,安装过程看这里的教程
1. 操作容器
启动容器以后台方式运行(更通用的方式)
docker run --name container_name -v /path/to/hostdir:/mnt -d -p 5000:5000 image_name
在运行着的容器内部运行一条命令(比attach更好用)
docker exec -it <id/container_name> /bin/(bash|sh)
附着到正在运行的容器
docker attach <id/container_name>
实时查看日志输出
docker logs -f <id/container_name> (类似 tail -f) (带上时间戳-t)
列出当前所有正在运行的container(类似的选项就不说了 docker ps –help)
docker ps
显示一个运行的容器里面的进程信息
docker top <id/container_name>
显示容器统计信息(可选–no-stream,all等参数)
docker stats
查看容器内部详情细节
docker inspect <id/container_name>
从容器内拷贝文件到主机上(从主机拷贝到容器里将cp后面两个参数调换)
docker cp <id/container_name>:/file/path/within/container /host/path/target
保存对容器的修改(commit) 当你对某一个容器做了修改之后(通过在容器中运行某一个命令),可以把对容器的修改保存下来,这样下次可以从保存后的最新状态运行该容器
docker commit <id/container_name> new_image_name
删除单个容器(可加-f选项)
docker rm <id/container_name>
删除所有容器
docker rm $(docker ps -a -q)
查看容器内部详情细节
docker inspect -f '{range .NetworkSettings.Networks}{.IPAddress}{end}' container_name_or_id
注意这里format之后不是一对{} 而是两对,这里有bug,所以先这么写着
停止、启动、杀死、重启一个容器
docker stop|start|kill|restart <id/container_name>
2. 操作镜像
列出镜像(可加-a ,-q选项)
docker images
从dockerhub检索image
docker search image_name
下载image
docker pull image_name
删除一个或者多个镜像(可加-f选项)
docker rmi image_name
显示一个镜像的历史
docker history image_name
发布docker镜像
docker image push my_repo/my_image:my_tag
删除一个或者多个镜像
docker rmi image_name
保存一个镜像到一个tar文件里(反过来就是解压)
docker save debian -o mydebian.tar
docker load -i mydebian.tar
给镜像打标签(标签指向源镜像,多生产一个)
docker tag centos:7 mycentos7:v1
3. 其他
通过Dockerfile生成新的镜像
docker build -t new_image_name:tag .
显示系统范围信息
docker info
提供docker 版本信息
docker version
查看docker0的网络(宿主机上操作)
ip a show docker0
附着到容器内部查看其内部ip:
ip a show eth0
登录到Docker registry.
docker login
删除所有未使用的容器,未使用的网络和悬空图像(也可单独删除)
docker system prune
4. 念念不忘
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!