docker 命令
帮助命令
官方查阅文档地址:https://docs.docker.com/reference/
docker version #显示 docker 版本信息
docker info #显示 docker 的系统信息,包括镜像和容器
docker --help #帮助命令
镜像命令
docker images #查看所有本地主机上的镜像
说明:
- REPOSITORY:镜像仓库源
- TAG:镜像标签
- IMAGE ID:镜像id
- CREATED:镜像创建的时间
- SIZE:镜像大小
重点:
1)docker images -aq #显示所有的镜像
2)docker images -q #仅显示镜像 id
docker search 搜索镜像
docker search mysql #以搜索mysql为例
docker search mysql --filter=STARS=3000 #STARS大于3000
docker pull 下载镜像
语法:docker pull 镜像名[:tag] #不写tag,默认下载 latest
docker 是分层下载的,之前下过的无需重新下载,节省时间
docker rmi 删除镜像
docker rmi -f 镜像id #通过镜像id删除
docker rmi -f 镜像id 镜像id 镜像id #通过镜像id删除多个镜像
docker rmi -f $(docker images -aq) #删除所有镜像
docker image prune #移除游离镜像(没有镜像名)
容器命令
说明:有了镜像我们才可以创建容器,以centos镜像为例
docker pull centos
- 新建容器并启动
docker run [参数] image
参数说明- --name="Name" 容器名字,用于区分容器
- -d 后台方式运行
- -it 使用交互方式运行,进入容器查看内容
- -p 指定容器端口
1) -p ip
2) -p 主机端口:容器端口(常用)
3) -p 容器端口
-
-p 随机端口号
-
docker create --name -p
使用create需要自己启动停止
后台启动docker run -d=docker create + docker start
docker ps 查看容器运行情况
语法:docker ps 命令
docker ps # 列出当前正在运行的容器
docker ps -a #列出当前正在运行的容器 + 历史运行的容器
docker ps -n=? #显示最近出现的容器,?是个数
docker ps -aq #显示运行容器id
容器运行有pause状态,与stop状态不同
退出容器
exit #容器直接停止并退出
ctrl+p+q #容器不停止退出,利用ps命令去验证
删除容器
docker rm 容器id #删除指定的容器,不能删除正在运行的容器,如果要强制删除用 rm -f
docker rm -f $(docker ps -aq) #删除所有的容器
docker ps -a -q|xargs docker rm #删除所有的容器
启动和停止容器
docker start 容器id #启动容器
docker stop 容器id #停止正在运行的容器
docker kill 容器id #强制停止当前容器
docker restart 容器id #重启容器
常用其他命令
后台启动容器
问题:使用后台启动容器,docker ps 时发现镜像停止
docker run -d 镜像名
- 问题 :docker ps 时发现镜像停止
常见坑:docker 容器使用后台运行,就必须要有一个前台进程(例如 -it 选项就是以交互方式进入容器即对外提供服务),docker 发现没有应用,就会自动停止 nginx ,容器启动后,发现自己没有提供服务就会立刻停止,也就没有程序了。
查看日志
docker logs --help
编写一个 shell 脚本来制造日志
-tf #显示日志
--tail number #显示日志条数
docker logs -tf --tail 10 容器id
查看容器中进程信息
docker top 容器id
查看镜像的元数据
docker inspect --help
docker inspect 容器id
进入当前正在运行的容器
通常使用后台方式运行,需要进入容器来修改一些配置
docker exec -it 容器id /bin/bash #通过/bin/bash命令行来进行交互进入容器
docker attch 容器id
区别:exec进入容器后进入新的终端,可以操作;attach 进入正在执行的终端,不会启动新的终端
- exec 可以指定用户:用户组来进入容器
从容器内拷贝到主机上
docker cp 容器id:容器内路径 目标机路径
ps:拷贝是一个手动过程,之后我们可以使用 -v卷 来共享
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?