Docker容器管理命令

本文介绍了Docker容器的管理命令,包括创建、绑定端口、设置环境变量、暂停、删除容器等操作。例如,使用`dockerrun`命令结合`-p`和`-e`参数来创建并绑定端口及设置环境变量,以及如何使用`dockerrm`和`dockercontainerprune`删除容器。此外,还讲解了如何查看和管理容器的日志。

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

docker容器管理命令

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

容器管理命令说明
docker run -it(d) 镜像名称:标签 启动命令创建启动并进入一个容器,后台容器使用参数 d
docker ps查看容器 -a 所有容器,包含未启动的,-q 只显示id
docker rm 容器ID-f 强制删除,支持命令重入
docker start|stop|restart 容器id启动、停止、重启容器
docker cp 本机文件路径 容器id:容器内路径把本机文件拷贝到容器内(上传)
docker cp 容器id:容器内路径 本机文件路径把容器内文件拷贝到本机(下载)
docker inspect 容器ID查看容器的详细信息
docker attach 容器id进入容器的默认进程,退出后容器会关闭
docker attach 容器id [ctrl+p, ctrl+q]进入容器以后,退出容器而不关闭容器的方法
docker exec -it 容器id 启动命令进入容器新的进程,退出后容器不会关闭
docker port 容器名查看容器映射的端口
docker top 容器名查看容器中运行的进程信息,支持 ps 命令参数

创建容器

在这里插入图片描述


-p 容器绑定外部IP和端口

# 将容器的80/tcp绑定到宿主机的0.0.0.0:4000端口
docker run -d -p 4000:80 容器名

# 将容器的80/tcp和80/udp端口绑定到宿主机的127.0.0.1:4000端口
docker run -d -p 127.0.0.1:4000:80 -p 127.0.0.1:4000:80/udp 容器名

# 映射端口段
## udp端口段
docker run -p 7000-8000:7000-8000 7000-8000:7000-8000/udp

-e 设置容器中的环境变量

# 容器运行一个远程浏览器
## -e 指定容器内的环境变量
docker run --name firefox -d -p 5800:5800 -e "LANG=zh_CN.UTF-8" --restart always jlesage/firefox

创建容器示例:

## -d= --detach
## -t= tty
## -i= input
## -p 8080:8080/udp  # 映射udp端口
## docker run --name 容器名 -dti 镜像名:镜像tag
docker run --name tomcat8080 -dit -p 8080:8080 -p 8080:8080/udp --restart=always -v /dta/webapps/test:/usr/local/tomcat/webapps/test:ro tomcat
docker运行指定容器名容器名-d:守护进程;-t: tty伪终端;-i: 允许交互(输入)-p:将宿主机端口映射到容器端口宿主机端口:容器端口允许容器开机自启将(宿主机目录)挂载到(容器目录)宿主机目录:容器目录只读
dockerrun-nametomcat-dti-p8080:8080–restart=always-v/dta/webapps/test:/usr/local/tomcat/webapps/test:ro

进入容器Attach和exec

参考: 容器中超易混淆 Attach 和 Exec 的异同

attach连接的是console进程,如果是个服务进程,什么都看不到。
attachlogs原理是一样的,不能在attach中执行脚本。
在这里插入图片描述


暂停容器

在这里插入图片描述


删除容器

# 删除容器
docker rm 容器名

# 强制删除容器
docker rm -f 容器名

# 删除所有的容器,包括停止的和运行的
docker rm -f $(docker ps -qa)

创建容器并在停止时销毁容器

当容器停止运行时,自动删除该容器释放资源

# 创建一个5秒钟后自动停止的容器
docker run --rm --name c1 -ti centos sleep 5

# 5秒钟后查看该容器,已经找不到了
docker ps

删除所有退出状态的容器

# 删除所有退出状态的容器(包括非docker容器)
docker container prune

在这里插入图片描述


查看容器

# 列出所有容器(包括非docker启动的容器)
docker container ls

查看容器的详细信息

# 查看容器的详细信息
docker inspect 容器名

查看容器信息的指定字段

docker ps -q| xargs docker inspect --format '{{.State.pid}}' 

在这里插入图片描述
在这里插入图片描述


查看容器执行的完整命令

https://blog.youkuaiyun.com/omaidb/article/details/126077851


查看容器日志

https://blog.youkuaiyun.com/omaidb/article/details/125600453

# 查看容器日志
docker logs 容器名

# 持续查看容器日志
docker logs -f 容器名

查看已退出容器的日志

https://blog.youkuaiyun.com/omaidb/article/details/125600453


查看容器指定日期的日志

# 查看容器 指定日期的日志
docker logs -t --since="2020-05-XX" 容器id > /tmp/$file.txt

修改容器名

docker run --name可以指定容器名.使用docker rename可以修改容器名

# 修改容器名
docker rename 旧容器名 新容器名

指定容器实例的主机名

在这里插入图片描述

# 创建docker容器实例时指定主机名
## -h 指定容器内的主机名
docker run -it --name 容器名 -h 容器实例主机名 镜像名

容器特权privileged

在这里插入图片描述


定位容器的pid

## docker ps -q: 获取所有的容器id,
## 再通过xargs管道,将这些容器id转交给docker inspect命令进行处理,通过-f '{{.State.Pid}} {{.Config.Hostname}}'参数,只打印出来容器当前的pid和容器id
docker ps -q | xargs docker inspect -f '{{.State.Pid}} {{.Config.Hostname}}' | grep $pid

在这里插入图片描述


排查端口号属于哪个容器

查询pid属于哪个容器

# 查看端口号的pid
netstat -tunple|grep ${端口号}

# 查看pid属于哪个容器
## 会打印出容器id
cat /proc/${pid}/cgroup

# 根据容器id查看容器名称
docker inspect ${容器id}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

教Linux的李老师

赞赏是第一生产力

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

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

打赏作者

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

抵扣说明:

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

余额充值