Docker常用命令(一)
前言:整理了一下日常使用的docker命令,很实用~
1.重启Docker
systemctl 方式
守护进程重启
sudo systemctl daemon-reload
重启docker服务
sudo systemctl restart docker
关闭docker
sudo systemctl stop docker
service 方式
重启docker服务
sudo service docker restart
关闭docker
sudo service docker stop
2.批量操作容器、镜像
启动所有容器
docker start $(docker ps -a | awk '{ print $1}' | tail -n +2)
停止指定容器
方法一:
docker stop $(docker ps -a | grep "xxx" | awk '{print $1}')
命令详解:
docker stop 停止容器
$() 返回在括号内运行脚本的结果
docker ps -a 列出所有容器的docker
| grep “xxx” 管道上一个命令的结果,grep以搜索包含字符串xxx的,也就是容器名称
| awk '{print $1}' 管道的结果grep搜索到的awk命令,该命令被告知仅打印在第1列,其是容器的ID的值
方法二:
docker ps | grep "xxx" | awk '{print $1}' | xargs docker stop
命令详解:
docker ps 用于列出所有正常运行的容器
| grep filter 将上一命令的结果通过管道传给过滤器,过滤条件为包含xxx关键字
| awk '{print $1}' 将上一命令的结果通过管道传给awk, awk '{print $1}' 打印第一列的数据,也就是容器ID
| xargs docker stop 将上一命令的结果通过管道传给xargs, xargs 将参数传给docker stop,然后停止这些容器
停止所有容器
根据NAMES停止所有容器
docker stop `docker ps | awk 'NR!=1{print $NF}'`
根据CONTAINER ID停止所有容器
docker stop `docker ps | awk 'NR!=1{print $1}'`
删除所有容器
根据NAMES删除所有容器
docker rm `docker ps -a | awk 'NR!=1{print $NF}'`
根据CONTAINER ID删除所有容器
docker rm `docker ps -a | awk 'NR!=1{print $1}'`
删除指定容器
根据关键字删除指定容器
docker rm $(docker ps -a |grep harbor | awk '{print $1}')
删除指定镜像
根据关键字删除指定镜像
docker rmi $(docker images |grep kube | awk '{print $3}')
命令详解:
| grep filter 将上一命令的结果通过管道传给过滤器,过滤条件为包含xxx关键字
删除所有镜像
docker rmi $(docker images | awk '{print $3}' |tail -n +2)
3.日常操作命令
进入正在运行容器
docker exec -it 容器ID /bin/bash
退出容器
exit
查看容器日志
docker logs -tf 容器ID ---实时打印日志
docker logs --tail 行数 容器ID ---查看指定行数日志
提交镜像版本
可基于镜像二次封装并提交生成新镜像
docker commit -a="test" -m="add a tst.txt file" 镜像ID nginx:1.0
-a:提交人
-m:提交日志信息
查看容器资源状态
docker stats 容器ID
ps:内存、网络等(如限制内存后,可用此命令查看是否生效)
测试镜像访问
curl localhost:暴露端口
下载镜像
docker pull 镜像名字[:tag]
拉取镜像流程图:
搜索镜像
通常是在docker hub 中
docker search 镜像名称
-f:过滤
docker search mysql -f STARS=10000 ---STARS大于1w的版本
-----------------持续更新----------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端