Docker常用命令总结

Docker常用命令总结

查看容器

#查看docker信息
docker version
#docker系统的信息
docker info
#查看运行中的容器
docker ps
#查看所有容器
docker ps -a
docker ps -all
#查看最后运行的容器
docker ps -l
#只查看所有容器的id号
docker ps -a -q

更多查看容器选项请通过docker ps -h 查看

容器日志

#docker日志查询
docker logs 2d97f5ac00f4
#查询最近一段时间的日志
docker logs 2d97f5ac00f4 --since=2m
#滚动查看日志
docker logs -f 2d97f5ac00f4
#查看最近n行日志
docker logs --tail 200 2d97f5ac00f4

更多查看日志选项请通过docker logs -h 查看

停止与删除

#停止所有正在运行的容器
docker kill $(docker ps -q)
docker stop $(docker ps -q)
#停止某个运行容器
docker stop container_id
#停止部分容器
docker ps |grep kube |awk ‘{print $1}’ |xargs -i docker stop {}
#删除所有已经停止的容器
docker rm $(docker ps -a -q)
#删除所有未打 dangling 标签的镜像
docker rmi $(docker images -q -f dangling=true)
#删除所有镜像
docker rmi $(docker images -q)

运行容器

#运行docker镜像
docker run -it -v /data/software/:/data/software/ centos /bin/bash

#运行一个jenkins镜像的例子命令

docker run \
  --name jenkins-docker \
  --rm \
  --detach \
  --privileged \
  --network jenkins \
  --network-alias docker \
  --env DOCKER_TLS_CERTDIR=/certs \
  --volume jenkins-docker-certs:/certs/client \
  --volume jenkins-data:/var/jenkins_home \
  --publish 2376:2376 \
  docker:dind \
  --storage-driver overlay2    #官网提供

镜像

#检索image
docker search image_name
#下载image
docker pull image_name
#查看docker镜像
docker images
#删除镜像
docker images rmi
#显示一个镜像的历史 (重要)
–no-trunc=false Don’t truncate output; -q, --quiet=false Only show numeric IDs
docker history image_name
#构建一个镜像
docker build -t name dockerfile路径
如:docker build -t centos:v1 . #表示dockerfile位于当前目录下

#打包提交拉取
docker tag registry:latest docker.margu.com/registry:latest
docker push docker.margu.com/registry:latest
docker pull docker.margu.com/registry:latest

#将容器提交为镜像
用于保存对容器的修改
参数: -a, --author string Author;-m, --message string Commit message
docker commit ID new_image_name

其他

docker diff

docker diff命令用于查看容器内部文件系统的变化。它将显示容器中添加、修改或删除的文件和目录。

语法
docker diff [OPTIONS] CONTAINER
CONTAINER是要检查文件系统变化的容器名称或ID。

示例
查看容器内部文件的变化:

[root@kube-master ~]# docker diff   8b
C /etc
C /etc/nginx
C /etc/nginx/conf.d
C /etc/nginx/conf.d/default.conf
C /var
C /var/cache
C /var/cache/nginx
A /var/cache/nginx/scgi_temp
A /var/cache/nginx/uwsgi_temp
A /var/cache/nginx/client_temp
A /var/cache/nginx/fastcgi_temp
A /var/cache/nginx/proxy_temp
C /run
A /run/nginx.pid

这将显示名为my_container的容器中文件系统的变化列表。添加的文件和目录以A(add)标记,修改的文件以C(change)标记,删除的文件以D(delete)标记。

监控容器内部文件的变化:
docker diff命令可以与其他命令结合使用,以监控容器内部文件系统的变化。例如,可以使用watch命令定期运行docker diff来实时监测文件的变化。如下:

watch -n 1 “docker diff my_container”

这将每秒钟运行一次docker diff命令,并显示容器中文件系统的变化。

使用场景:

  • 调试容器:当遇到容器中文件系统相关的问题时,可以使用docker diff命令来查看文件的变化,以确定是否有意外的修改或删除操作。
  • 监测容器的行为:通过定期运行docker diff命令,可以监测容器内部文件系统的变化,以确保容器的行为符合预期。
  • 容器安全审计:使用docker diff命令可以检查容器中的文件变化,以进行安全审计。可以查看容器中添加或修改的文件,以确保没有未经授权的更改。

docker stats

查看某个容器当前资源使用状态

[root@k8s-m1 ~]# docker stats f7
CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT     MEM %     NET I/O   BLOCK I/O   PIDS
f71a364e77ae   tomcat-test   0.00%     109.7MiB / 7.636GiB   1.40%     0B / 0B   0B / 0B     25
CONTAINER ID   NAME          CPU %     MEM USAGE / LIMIT     MEM %     NET I/O   BLOCK I/O   PIDS

大致可以观察到当前容器cpu、内存的使用率等。并且可以发现默认情况下,容器能使用多少宿主机资源是没有限制的。

#查看容器或者镜像的详细信息
docker inspect container_id 或者 docker inspect image_id
docker inspect --format ‘{{ .NetworkSettings.IPAddress }}’
注意:不是所有容器都有数据返回,要根据实际情况去获得数据。
#可以考虑在 ~/.bashrc 中写一个 bash 函数:
vim ~/.bashrc
function docker_ip() {
sudo docker inspect --format ‘{{ .NetworkSettings.IPAddress }}’ $1
}
source ~/.bashrc
然后:
docker_ip

#获取所有容器名称及其IP地址只需一个命令。
docker inspect -f ‘{{.Name}} - {{.NetworkSettings.IPAddress }}’ $(docker ps -aq)
如果使用docker-compose命令将是:
docker inspect -f ‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -aq)

#显示所有容器IP地址:
docker inspect --format=‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ $(docker ps -aq)
返回的结果中,前面为对应的容器名字,后面为IP,不是所有的容器都有IP地址

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

margu_168

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值