Docker 新手常用命令与用法
本文面向新手,覆盖最常用的 Docker 命令与典型用法,配合示例即可快速上手。
1. 安装与基本检查
bash
docker version
docker infodocker version:查看客户端/服务端版本,确认是否安装成功。docker info:查看运行状态、镜像/容器数量、存储驱动等基础信息。
2. 镜像(Image)管理
bash
docker search nginx
docker pull nginx:latest
docker images
docker rmi nginx:latestdocker search:搜索镜像(仅作初步参考)。docker pull:拉取镜像(建议指定标签,例如:latest或具体版本)。docker images:列出本地镜像。docker rmi:删除镜像(有容器在用时需先删容器)。
3. 容器(Container)生命周期
bash
docker run --name web -d -p 8080:80 nginx:latest
docker ps
docker ps -a
docker stop web
docker start web
docker restart web
docker rm webdocker run:创建并启动容器(最常用)。
常见参数:--name web:给容器取名,方便后续操作。-d:后台运行。-p 8080:80:端口映射(主机端口:容器端口)。-e KEY=VAL:设置环境变量。-v 主机目录:容器目录:挂载数据卷(见第 6 节)。--restart=always:随 Docker 服务自启。
docker ps/docker ps -a:查看运行中/所有容器。docker stop/start/restart:停止/启动/重启容器。docker rm:删除容器(需先停止)。
4. 进入容器与排查问题
bash
docker exec -it web /bin/sh
docker logs -f --tail 100 web
docker inspect web
docker cp web:/usr/share/nginx/html ./htmldocker exec -it:进入容器交互式终端。docker logs:查看日志(-f持续跟随)。docker inspect:查看详细配置和网络信息。docker cp:在主机与容器之间复制文件。
5. 网络与端口
bash
docker network ls
docker network create my-net
docker run --name app --network my-net -d my-imagedocker network:查看/创建自定义网络,让容器互相按名称访问。- 默认 bridge 网络可直接使用端口映射
-p暴露服务。
6. 数据持久化(Volume)
bash
docker volume ls
docker volume create mydata
docker run -d --name db -v mydata:/var/lib/mysql mysql:8- 卷(volume):由 Docker 管理,适合持久化数据。
- 绑定挂载(bind mount):把主机目录映射进容器,适合开发场景。
示例(PowerShell):
bash
docker run -d --name app -v ${PWD}:/app node:207. 构建镜像(Dockerfile)
bash
docker build -t my-app:1.0 .
docker tag my-app:1.0 my-app:latestdocker build -t:构建镜像并命名,.是构建上下文目录。docker tag:给镜像打新标签。
示例 Dockerfile:
dockerfile
FROM node:20
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
CMD ["npm", "start"]8. 常用清理命令
bash
docker system df
docker system prunedocker system df:查看磁盘占用。docker system prune:清理未使用的资源(谨慎使用)。
9. 常见场景示例
- 启动一个 Nginx 服务:
bash
docker run -d --name web -p 8080:80 nginx:latest- 启动 Redis 并持久化数据:
bash
docker run -d --name redis -p 6379:6379 -v redisdata:/data redis:7- 本地开发挂载代码(热更新常用):
bash
docker run -it --name dev -v ${PWD}:/app -w /app node:20 bash如果你需要更深入内容(Compose、镜像优化、多阶段构建、私有仓库),告诉我,我可以继续补充。