docker 常用命令

默认分类·工作 · 2023-08-14

摘自: https://www.cnblogs.com/xjx767361314/p/15619892.html
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]

拉取镜像流程图:
2023-08-14T06:13:08.png

Theme Jasmine by Kent Liao