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的版本
-----------------持续更新----------------