docker常用命令
docker常用命令
当你接触一项新的技术时,学习应该都是从查看开发者文档或者官网开始,遇到问题应该多翻阅官方文档,命令比较多记不住时,也应该通过help命令了解更多的用法。
一、帮助命令
查看docker容器版本:
docker version
查看docker容器信息:
docker info
查看docker容器帮助:
docker --help
帮助文档:https://docs.docker.com/engine/reference/
二、操作
1、查看docker状态:
systemctl status docker
2、启动docker:
systemctl start docker
查看启动之后的状态,最前面的按钮是绿色的,并且Active为running。
3、停止docker:
systemctl stop docker
查看停用之后的状态,最前面的按钮是灰色的,并且Active为dead。
4、重启docker:
systemctl restart docker
5、开机启动:
systemctl enable docker
三、容器镜像相关
镜像相关
1、镜像查看:
docker images | grep {image_name}
##列出本地images
docker images
##含中间映像层
docker images -a
##只显示镜像ID
docker images -q
#(了解)
##显示镜像摘要信息(DIGEST列)
docker images --digests
##显示镜像完整信息
docker images --no-trunc
2、镜像搜索:
docker search {image_name}
从Docker Hub查找镜像:https://hub.docker.com/
##搜索仓库MySQL镜像
docker search {image_name}
## --no-trunc 显示镜像完整 DESCRIPTION 描述
docker search --no-trunc {image_name}
## --filter条件过滤
docker search --filter/-f {condition} {image_name}
# 例如:
# 搜索镜像,收藏值(热度)大于等于600
docker search -f stars=600 mysql
# 搜索镜像,IsAutomated “OK” 表示自动构建
docker search --filter is-automated=true mysql
# 搜索镜像,IsOfficial “OK” 表示官方镜像
docker search --filter is-official=true --filter stars=600 mysql
3、镜像下载:
拉取最新
docker pull {image_name}
拉取指定Tag
docker pull {image_name}:{tag}
##下载Redis官方最新镜像,相当于:docker pull redis:latest
docker pull redis
##下载指定版本的MySQL镜像
docker pull mysql:5.7.37
##下载私人仓库镜像
docker pull bitnami/redis
你可以在docker hub上搜索你要的镜像名,找到tag,然后直接复制命令
docker pull 默认下载最新的版本,需要下载指定版本的要指定tag。如果你下载了多个版本,重复的部分会略过,提示Already exists。
4、镜像删除:
按镜像ID删除
docker rmi -f {image_id}:{tag}
按名称删除
docker rmi -f {image_name}
##单个镜像删除,相当于:docker rmi redis:latest
docker rmi redis
##强制删除(针对基于镜像有运行的容器进程)
docker rmi -f redis
##多个镜像删除,不同镜像间以空格间隔
docker rmi -f redis tomcat nginx
##删除本地全部镜像
docker rmi -f $(docker images -q)
5、镜像构建:
docker build -f {dockerfile_name} -t {image_name}:{tag}.
6、镜像打包tar:
docker save -o ./{image_name.tar} {image_name}:{tag}
容器相关
1、查看容器
docker ps
##查看正在运行的容器的ID
docker ps -q
##**查看正在运行+历史运行过的容器**
docker ps -a
##显示运行容器总文件大小
docker ps -s
##显示
docker ps -n={number}
##获取镜像redis的元信息
docker inspect redis
##获取正在运行的容器redis的 IP
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' redis
2、容器启动
docker start {container_id}
##启动一个或多个已经被停止的容器
docker start {container_name}:{tag}\{container_id}
##重启容器
docker restart {container_name}:{tag}\{container_id}
3、容器的进入与退出
docker run
docker exec
docker attach
#使用run方式在创建时进入
docker run -it centos /bin/bash
docker run --name
docker run -it
docker run -p/-P
docker run -v
docker run --expose
docker run -e
##关闭容器并退出
exit
##仅退出容器,不关闭
快捷键:Ctrl + P + Q
##直接进入centos 容器启动命令的终端,不会启动新进程,多个attach连接共享容器屏幕,参数:--sig-proxy=false 确保CTRL-D或CTRL-C不会关闭容器
docker attach --sig-proxy=false centos
##在 centos 容器中打开新的交互模式终端,可以启动新进程,参数:-i 即使没有附加也保持STDIN 打开;-t 分配一个伪终端
docker exec -i -t centos /bin/bash
##以交互模式在容器中执行命令,结果返回到当前终端屏幕
docker exec -i -t centos ls -l /tmp
##以分离模式在容器中执行命令,程序后台运行,结果不会反馈到当前终端
docker exec -d centos touch cache.txt
4、容器日志
docker logs
# 显示时间戳
docker logs -t
# 列出最近N条日志
docker logs --tail={number}
# 跟踪日志
docker logs -f
# 查看容器mynginx从2016年7月1日后的最新10条日志
docker logs --since="2016-07-01" --tail=10 mynginx
5、容器拷贝
docker cp
# 将rabbitmq容器中的文件copy至本地路径
docker cp rabbitmq:/{container_path} {local_path}
##将主机文件copy至rabbitmq容器
docker cp {local_path} rabbitmq:/{container_path}/
##将主机文件copy至rabbitmq容器,目录重命名为[container_path](注意与非重命名copy的区别)
docker cp {local_path} rabbitmq:/{container_path}
6、容器日志容器停止删除
docker stop
docker kill
docker rm
##停止一个运行中的容器
docker stop {container_id}
##杀掉一个运行中的容器
docker kill redis
docker ps -a -q | xargs docker rm
## -l 移除容器间的网络连接,连接名为 db
docker rm -l db
## -v 删除容器,并删除容器挂载的数据卷
docker rm -v redis
##删除一个已停止的容器
docker rm {container_name}:{tag}\{container_id}
##强制删除一个运行中的容器
docker rm -f {container_name}:{tag}\{container_id}
##删除多个容器
docker rm -f $(docker ps -a -q)
删除容器前,要将容器停止。
7、其他
docker push
docker logout
docker login -u {username} -p {password}
docker stats
docker commit
docker tag
docker load
四、遇到问题
1、使用命令docker run -d -p 8888:8080 tomcat:9.0.58
暴露8888端口后,访问404
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南