常用指令
Docker 的指令非常多,但日常开发和运维中最常用的可以分为以下几大类。掌握了这些指令,基本就能应付 90% 的使用场景。
一、 镜像管理 (Images)
镜像就像是“安装包”,是运行容器的基础。
-
docker images:列出本地所有的镜像。 -
docker pull <镜像名>:<标签> :从仓库拉取镜像(如果不加标签,默认是:latest)。
- 示例:
docker pull nginx:latest -
docker rmi <镜像ID或名> :删除本地镜像(需确保没有容器正在使用它)。 -
docker build -t <镜像名>:<标签> . :根据当前目录的Dockerfile构建镜像。 -
docker tag <源镜像> <新名称>:<新标签> :给镜像打标签,常用于推送前重命名。 -
docker save -o <文件名>.tar <镜像> :将镜像保存为 tar 归档文件。 -
docker load -i <文件名>.tar:从 tar 文件加载镜像。
二、 容器生命周期管理 (Containers)
容器是镜像运行后的实例。
-
docker run [选项] <镜像> :创建并启动一个新容器。
-
-d:后台运行。 -
-p 8080:80:端口映射(宿主机端口:容器内端口)。 -
--name my-nginx:给容器起个名字。 -
-v /host/path:/container/path:挂载数据卷。 -
-e MY_VAR=value:设置环境变量。 - 示例:
docker run -d -p 8080:80 --name myweb nginx -
docker ps:查看当前正在运行的容器。 -
docker ps -a:查看所有容器(包括已停止的)。 -
docker stop <容器ID或名> :停止运行中的容器。 -
docker start <容器ID或名> :启动已停止的容器。 -
docker restart <容器ID或名> :重启容器。 -
docker rm <容器ID或名> :删除容器(运行中的容器需先停止,或加-f强制删除)。 -
docker kill <容器ID或名> :强行杀死容器进程。
三、 容器操作与运维 (Operations)
用于查看容器内部状态或与其交互。
-
docker exec -it <容器名> /bin/bash:进入容器内部(最常用,-it开启交互终端)。
- 注:有些精简镜像没有 bash,需改用
sh -
docker logs <容器名> :查看容器日志。
-
-f:持续滚动查看日志(类似tail -f)。 -
docker inspect <容器名或镜像名> :查看容器或镜像的详细元数据(JSON 格式)。 -
docker cp <宿主机路径> <容器名>:<路径> :在宿主机和容器之间拷贝文件。 -
docker stats:实时查看容器的 CPU、内存、网络 IO 等资源消耗。 -
docker top <容器名> :查看容器内运行的进程。
四、 网络与卷管理 (Networks & Volumes)
用于容器间通信和持久化数据。
-
docker network ls:列出所有网络。 -
docker network create <网络名> :创建一个新的虚拟网络(常用于容器互联)。 -
docker volume ls:列出所有数据卷。 -
docker volume create <卷名> :创建一个持久化数据卷。
五、 系统清理 (Clean up)
Docker 运行久了会占用大量磁盘空间。
-
docker system df:查看 Docker 占用的磁盘空间情况。 -
docker system prune:清理无用的对象(停止的容器、未使用的网络、悬空镜像)。 -
docker image prune:专门清理未被引用的镜像。
💡 小贴士:
如果你觉得 docker 命令前缀太长,可以尝试使用 Docker Compose(通过 docker-compose.yml 文件),只需一个 docker compose up -d 就能启动一整套服务。