Docker容器命令是管理容器生命周期、操作容器内部环境以及与容器交互的核心工具,掌握这些命令能有效提升容器化应用的部署和运维效率,以下是常用命令的详细说明及使用场景。

容器管理命令是基础,其中docker run
用于创建并启动新容器,例如docker run -d --name mynginx -p 80:80 nginx
以后台模式启动一个名为mynginx的Nginx容器,并将宿主机80端口映射到容器80端口。docker ps
列出运行中的容器,docker ps -a
可查看所有容器(包括已停止的)。docker stop
和docker start
分别用于停止和启动容器,如docker stop mynginx
停止容器,docker start mynginx
重新启动。docker rm
删除容器,docker rm -f mynginx
强制删除运行中的容器,而docker system prune
可清理无用的容器、镜像和网络,释放存储空间。
容器内部操作命令允许与容器交互。docker exec
在运行中的容器内执行命令,例如docker exec -it mynginx bash
以交互模式进入容器bash终端,-i
保持输入流,-t
分配伪终端。docker logs
查看容器日志,docker logs -f mynginx
实时跟踪日志输出,--tail
参数可限制日志行数,如docker logs --tail 100 mynginx
。docker inspect
获取容器详细信息,包括IP地址、挂载点等,例如docker inspect mynginx | grep IPAddress
提取容器IP。
镜像与容器数据管理命令同样重要。docker commit
将容器保存为镜像,如docker commit mynginx mynginx:v1
基于mynginx容器创建版本为v1的镜像。docker cp
在宿主机与容器间复制文件,docker cp /host/path mynginx:/container/path
将宿主机文件复制到容器内,数据卷管理通过docker volume create
创建卷,docker run -v myvol:/data nginx
将卷挂载到容器目录,实现数据持久化。
网络管理命令用于配置容器通信。docker network create
自定义网络,docker network create mynet
创建名为mynet的桥接网络,docker run --network mynet nginx
将容器加入该网络,实现容器间通过名称通信,端口映射除-p
外,还可使用--publish
,格式为宿主机端口:容器端口
,支持TCP/UDP协议指定,如-p 8080:80/udp
。

资源限制命令可防止容器占用过多资源。docker run --memory 512m --cpus 1 nginx
限制容器内存512MB、CPU使用1核,--memory-swap
可设置内存加交换空间上限,--restart
设置容器重启策略,如--restart unless-stopped
表示除非手动停止,否则容器退出后自动重启。
相关问答FAQs:
-
问:如何查看容器内部进程?
答:使用docker top [容器名/ID]
命令,例如docker top mynginx
可查看容器内运行的进程列表,包括PID、用户、CPU及内存占用等信息,方便排查容器内进程异常问题。 -
问:容器无法启动如何排查?
答:首先通过docker logs [容器名/ID]
查看容器日志,定位错误信息;其次使用docker inspect [容器名/ID]
检查容器配置,如端口冲突、资源不足或镜像是否存在;若仍无法解决,可尝试docker rm -f [容器名/ID]
删除容器后重新创建,或检查宿主机Docker服务状态(docker info
)。(图片来源网络,侵删)