一、容器核心操作(日常高频)
1. docker run:创建并启动容器
这是最常用的命令,基本结构是 docker run 加上各种参数,最后指定镜像或命令。
常用参数:
-d:后台守护式运行,终端不阻塞,适合生产环境。-it:交互式终端,适合调试容器。--name:指定容器名称,避免随机生成名导致管理混乱。-p 宿主机端口:容器端口:端口映射,让外部能访问容器服务。-v 宿主机路径:容器路径[:权限]:挂载目录或数据卷,实现数据持久化。--rm:容器停止后自动删除,适合临时任务。
实战示例:
# 后台启动 Nginx,映射 80 端口到宿主机 8080,命名为 nginx-web
docker run -d -p 8080:80 --name nginx-web nginx:latest
# 交互式启动 Ubuntu,进入 bash,退出即删除容器
docker run -it --rm ubuntu:22.04 /bin/bash
# 启动 MySQL,挂载数据卷持久化数据,设置 root 密码
docker run -d -p 3306:3306 --name mysql-db \
-v mysql-data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
注意,如果本地没有这个镜像,Docker 会尝试自动去仓库拉取,省得你手动跑 pull。默认命令为镜像的 CMD,也可以手动覆盖(比如 /bin/bash)。
2. docker ps:查看容器状态
用来确认容器是否活着,或者排查异常退出的情况。
常用选项:
-a:显示所有容器(含已停止)。-l:显示最近创建的容器。-q:仅输出容器 ID,方便批量操作。--filter "status=exited":筛选已停止的容器。
实战示例:
# 查看所有运行中的容器
docker ps
# 查看所有容器(含停止),快速定位已退出容器
docker ps -a
# 仅获取所有容器 ID,用于批量删除/停止
docker ps -aq
重点关注 STATUS 字段:Up xxx 表示运行中,Exited (0) 是正常退出,而 Exited (1) 通常意味着异常,需要进一步排查。
3. docker exec:进入运行中的容器
这是调试必备命令,区别于 attach,它不会终止容器进程。
常用选项:
-it:交互式进入终端,必选。
实战示例:
# 进入 nginx-web 容器,操作 bash 终端
docker -it nginx-web /bin/bash
docker nginx-web /etc/nginx/nginx.conf

