Docker常用命令

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-slimeclipse-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 开发者专属)

  1. 避免在容器中使用 latest 标签 :应固定 JDK 版本(如 openjdk:17.0.10-jdk-slim)。

  2. 多阶段构建 可减小镜像体积:

    Dockerfile 复制代码
    FROM 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"]
  3. 健康检查 :可在 Dockerfiledocker run 中添加 HEALTHCHECK,便于 Kubernetes 或 Docker Compose 监控应用状态。

相关推荐
AI浩4 小时前
【Labelme数据操作】LabelMe标注批量复制工具 - 完整教程
运维·服务器·前端
sunxunyong5 小时前
doris运维命令
java·运维·数据库
Guheyunyi5 小时前
智慧消防管理系统如何重塑安全未来
大数据·运维·服务器·人工智能·安全
古城小栈5 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
会飞的小蛮猪6 小时前
K8s-1.29.2二进制安装-第一章
云原生·容器·kubernetes
雾削木8 小时前
k230 Pyhton三角形识别
运维·服务器·网络·stm32·智能路由器
大连好光景9 小时前
Python打日志
运维·python·运维开发
专家大圣10 小时前
摆脱局域网束缚!Neko+cpolar 让跨网共享成日常
服务器·网络·docker·内网穿透·cpolar
二哈喇子!10 小时前
openFuyao 容器平台快速入门:Nginx 应用部署全流程实操
运维·nginx·openfuyao
齐鲁大虾10 小时前
国产 Linux 系统核心优缺点与适用场景
linux·运维·服务器