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 监控应用状态。

相关推荐
晚风_END4 小时前
Linux|操作系统|elasticdump的二进制方式部署
运维·服务器·开发语言·数据库·jenkins·数据库开发·数据库架构
独自归家的兔5 小时前
Ubuntu 系统 systemd timers 详解:替代 crontab 的定时任务进阶方案
linux·运维·ubuntu
Lsir10110_5 小时前
【Linux】深入解剖页表——分页式存储
linux·运维·服务器
victory04315 小时前
服务器病毒处理记录
运维·服务器·chrome
爱吃生蚝的于勒5 小时前
【Linux】线程概念(一)
java·linux·运维·服务器·开发语言·数据结构·vim
风指引着方向5 小时前
昇腾 AI 开发生产力工具:CANN CLI 的高级使用与自动化脚本编写
运维·人工智能·自动化
fengyehongWorld5 小时前
Linux yq命令
linux·运维·服务器
weixin_404679315 小时前
docker部署ollama
运维·docker·容器
Hi202402175 小时前
在Docker容器中安全运行OpenClaw:无需虚拟机,体验AI助手
人工智能·安全·docker·openclaw
草莓熊Lotso5 小时前
Qt 主窗口核心组件实战:菜单栏、工具栏、状态栏、浮动窗口全攻略
运维·开发语言·人工智能·python·qt·ui