Docker常用命令
以下是一份面向 Java 开发工程师的 Docker 常用命令速查清单,涵盖了镜像管理、容器操作、日志查看、网络与卷管理等核心内容,并结合 Java 应用场景做了简要说明。
🐳 一、镜像(Image)相关命令
| 命令 | 说明 |
|---|---|
docker images |
列出本地所有镜像 |
docker pull <image> |
从仓库拉取镜像(如 docker pull openjdk:17) |
docker build -t <name>:<tag> . |
构建镜像(通常配合 Dockerfile,. 表示当前目录) |
docker rmi <image> |
删除本地镜像 |
docker tag <source> <target> |
给镜像打标签(如 docker tag myapp:latest myregistry/myapp:v1) |
docker push <image> |
推送镜像到远程仓库(需先登录) |
💡 Java 场景:常用基础镜像如
openjdk:17-jdk-slim、eclipse-temurin:17-jdk-alpine。
🚢 二、容器(Container)操作命令
| 命令 | 说明 |
|---|---|
docker run -d -p 8080:8080 --name myapp myimage |
后台运行容器,端口映射,指定名称 |
docker ps |
查看正在运行的容器 |
docker ps -a |
查看所有容器(包括已停止的) |
docker stop <container> |
停止容器 |
docker start <container> |
启动已停止的容器 |
docker restart <container> |
重启容器 |
docker rm <container> |
删除容器(需先停止) |
docker rm -f <container> |
强制删除正在运行的容器 |
docker exec -it <container> /bin/bash |
进入容器内部(调试用) |
docker logs -f <container> |
实时查看容器日志(Java 应用输出日志必备) |
docker logs --tail 100 <container> |
查看最近 100 行日志 |
💡 Java 场景:Spring Boot 应用通常打包为 JAR,通过
java -jar app.jar启动,端口默认 8080。
📦 三、构建 Java 应用镜像(Dockerfile 示例)
Dockerfile
# 使用官方 OpenJDK 17 镜像
FROM openjdk:17-jdk-slim
# 设置工作目录
WORKDIR /app
# 复制 JAR 文件到容器
COPY target/myapp.jar app.jar
# 暴露端口
EXPOSE 8080
# 启动应用
ENTRYPOINT ["java", "-jar", "app.jar"]
构建命令:
bash
docker build -t myapp:1.0 .
运行命令:
bash
docker run -d -p 8080:8080 --name myapp-container myapp:1.0
🗃️ 四、数据卷(Volume)与挂载
| 命令 | 说明 |
|---|---|
docker volume create myvol |
创建命名卷 |
docker run -v myvol:/app/data ... |
挂载命名卷到容器路径 |
docker run -v /host/path:/container/path ... |
挂载主机目录(开发调试常用) |
docker volume ls |
列出所有卷 |
docker volume rm myvol |
删除卷 |
💡 Java 场景:可用于持久化配置文件(如
application.yml)、日志或上传文件。
🌐 五、网络(Network)管理
| 命令 | 说明 |
|---|---|
docker network ls |
查看网络 |
docker network create mynet |
创建自定义网络 |
docker run --network mynet ... |
将容器加入指定网络 |
docker network inspect mynet |
查看网络详情 |
💡 Java 场景:微服务之间通信建议使用自定义 bridge 网络,可通过服务名互相访问。
🔍 六、其他实用命令
| 命令 | 说明 |
|---|---|
docker system df |
查看 Docker 磁盘使用情况 |
docker system prune |
清理无用容器、镜像、网络、缓存(谨慎使用) |
docker stats |
实时监控容器资源使用(CPU/内存等) |
docker inspect <container> |
查看容器详细信息(IP、挂载点等) |
✅ 小贴士(Java 开发者专属)
-
避免在容器中使用
latest标签 :应固定 JDK 版本(如openjdk:17.0.10-jdk-slim)。 -
多阶段构建 可减小镜像体积:
DockerfileFROM maven:3.9-eclipse-temurin-17 AS builder COPY . . RUN mvn clean package -DskipTests FROM eclipse-temurin:17-jre-alpine COPY --from=builder target/app.jar app.jar ENTRYPOINT ["java", "-jar", "app.jar"] -
健康检查 :可在
Dockerfile或docker run中添加HEALTHCHECK,便于 Kubernetes 或 Docker Compose 监控应用状态。