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

相关推荐
木童66230 分钟前
Nginx 深度解析:反向代理与负载均衡、后端Tomcat
linux·运维·nginx
CheungChunChiu40 分钟前
Android 系统中的 NTP 服务器配置与选择逻辑详解
android·运维·服务器
程序员潇潇2 小时前
Jenkins 插件下载速度慢安装失败?这篇文章可能解决你头等难题!
运维·自动化测试·软件测试·功能测试·程序人生·职场和发展·jenkins
百***48072 小时前
从零到上线:Node.js 项目的完整部署流程(包含 Docker 和 CICD)
docker·容器·node.js
minji...2 小时前
Linux 进程概念 (三) (进程状态,僵尸进程,孤儿进程,进程优先级)
linux·运维·服务器
敲上瘾3 小时前
Docker镜像构建优化指南:CMD/ENTRYPOINT、多阶段构建与缓存优化
运维·缓存·docker·容器·架构
❀͜͡傀儡师6 小时前
docker安装mac系统
macos·docker·容器
ζั͡山 ั͡有扶苏 ั͡✾10 小时前
EFK 日志系统搭建完整教程
运维·jenkins·kibana·es·filebeat
TH_110 小时前
腾讯云-(8)-宝塔面板-安装Docker
docker·云计算·腾讯云