docker命令

本文提供了Docker常用命令的快速查阅指南,涵盖启动、镜像管理、容器操作、日志控制及资源清理等核心功能,适合Docker初学者及日常运维人员参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  1. 启动docker
sudo systemctl start docker
  1. 查看本地image列表
sudo docker image ls

简写

docker images
  1. 拉取镜像, version可选
sudo docker pull <name> <version>

解决命令行下不输入sudo,sudo添加是因为没有docker命令执行权限;

  1. 添加到docker组
sudo groupadd docker
sudo gpasswd -a vagrant docker

最后重启docker服务

sudo service docker restart

最后退出重新登录shell

  1. 运行镜像
docker run hello-word

-d 后台运行
–name xxx 指定名称
-p 80:80 将容器的80端口映射到本地80
后台运行 -d 参数
6. docker构建image

docker build -t fanxl12/hello-world .

docker build是docker image build的简写
7. 查看image的分层, 9b82dcc7ae9c为imageId

docker history 9b82dcc7ae9c
  1. 查看当前容器列表
docker container ls
  1. 查看当前容器,包括不在运行的
docker container ls -a

简写

docker ps -a
  1. 删除container, dc是容器的id,可以不写全
docker container rm dc

简写

docker rm dc
  1. image删除, imageId
docker image rm 23dwerrsd

简写

docker rmi 23dwerrsd
  1. 查看容器的id
docker container ls -aq
  1. 批量删除container
docker rm $(docker container ls -aq)
  1. 只查询退出的container
docker container ls -f "status=exited" -q
  1. 批量删除退出的container
docker rm $(docker container ls -f "status=exited" -q)
  1. 把一个container commit为一个image
docker commit epic_davinci fanxl12/centos-vim

epic_davinci 为container的name
docker commit 是 docker container commit的简写
这种方法不推荐,推荐使用Dockerfile来构建image,Dockerfile会有构建说明

  1. 进入正在运行的容器内部,执行一个命令 exec命令
    比如执行bash命令
docker exec -it 18d694f9b358 /bin/bash

或者

docker exec -it 18d694f9b358 /bin/sh

或者去运行容器内部的python

docker exec -it 18d694f9b358 python

查看运行容器运行的ip地址

docker exec -it 18d694f9b358 ip a
  1. 指定运行容器的名称–name
docker run -d --name=demo fanxl12/flask-hello-world
  1. 容器的停止和启动
docker stop name/id
docker start name/id
  1. 显示容器的详细信息 inspect
docker inspect 99e21689d98f
  1. 查看容器运行的logs 容器id
docker logs 99e21689d98f
  1. 在build image过程中报错,我们可以进入到build每个阶段的容器中进行调试
docker run -it 73eed5f2c240 /bin/bash

73eed5f2c240 为build过程中的临时容器id

  1. 运行容器传入参数
    Dockerfile定义, ENTRYPOINT 加CMD实现,CMD接收参数
ENTRYPOINT ["/usr/bin/stress"]
CMD []

运行, --vm 1 --verbose为传入的参数

docker run -it fanxl12/ubuntu-stress --vm 1 --verbose
  1. 运行容器传入参数
sudo docker run -d -p 5000:5000 --link redis --name flask-redis -e REDIS_HOST=redis fanxl12/flask-redis

命令解析:
-d 后台运行
-p 容器端口映射到本地
–link redis 和redis容器做网络的链接
–name flask-redis 容器名称指定为flask-redis
-e 携带参数,键值对的形式传入

直接删除所有镜像或容器

# 直接删除所有镜像
docker rmi `docker images -q`

# 直接删除所有容器
docker rm `docker ps -aq`

按xxxxx名称筛选之后删除

# 按条件筛选之后删除镜像
docker rmi `docker images | grep xxxxx | awk '{print $3}'`

# 按条件筛选之后删除容器
docker rm `docker ps -a | grep xxxxx | awk '{print $1}'`

清除无用游离镜像

docker image prune

清除docker无用的缓存

docker system prune -a

这个命令使用的时候注意,它会删掉没有运行的容器和镜像,确定是否是没用的,不然就都删除了

查询/目录下大于100MB的文件

find / -type f -size +100M -print0 | xargs -0 du -h | sort -nr

docker查看容器做了哪些修改

docker diff xxx

docker容器配置更新

docker update

docker容器提交成一个新的镜像

docker commit -a fanxl -m "init new another redis" redis redis:myRedis

限制docker容器的日志大小

全局设置

新建/etc/docker/daemon.json,若有就不用新建了。添加log-dirver和log-opts参数,样例如下:

# vim /etc/docker/daemon.json

{
  "log-driver":"json-file",
  "log-opts": {"max-size":"500m", "max-file":"3"}
}

max-size=500m,意味着一个容器日志大小上限是500M,
max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。

// 重启docker守护进程

systemctl daemon-reload

systemctl restart docker
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值