java docker总结-使用

时间:2025-08-27 20:24:01来源:互联网

下面小编就为大家分享一篇java docker总结-使用,具有很好的参考价值,希望对大家有所帮助。

构建基本java应用程序

1. 创建一个Dockerfile:在您的项目根目录下创建一个名为Dockerfile的文件。Dockerfile是用于定义Docker镜像构建过程的文本文件。

2. 编写Dockerfile内容:在Dockerfile中,您需要指定基础镜像、将应用程序复制到镜像中的步骤以及运行应用程序的命令。以下是一个示例的Dockerfile内容:

# 使用Java 11作为基础镜像
FROM openjdk:11
   
# 设置工作目录
WORKDIR /app
   
# 将应用程序JAR文件复制到镜像中
COPY target/myapp.jar /app/myapp.jar
   
# 运行Java应用程序
CMD ["java", "-jar", "myapp.jar"]

在上面的示例中,假设您的Java应用程序的可执行JAR文件位于target/myapp.jar。

3. 构建Docker镜像:在终端中,导航到包含Dockerfile的项目根目录,并运行以下命令来构建Docker镜像:

   docker build -t myapp .

上述命令将使用当前目录中的Dockerfile构建一个名为myapp的Docker镜像。请确保在运行此命令之前已经安装了Docker。

4. 运行Docker容器:使用以下命令来运行刚刚构建的Docker镜像:

   docker run -d myapp

上述命令将在后台运行一个名为myapp的Docker容器,并执行在Dockerfile中定义的CMD命令来启动Java应用程序。

如果您的Java应用程序需要暴露端口以供外部访问,可以使用-p选项来映射容器端口到主机端口。例如,要将容器的8080端口映射到主机的8080端口,可以使用以下命令:

   docker run -d -p 8080:8080 myapp

这样,您就可以通过访问http://localhost:8080来访问运行在Docker容器中的Java应用程序。

 

如果要在服务器上运行,在第三步构建好镜像以后

#打包镜像为 tar 文件
docker save -o my-app.tar my-app
#使用 scp 或其他方式将镜像文件传到服务器:
scp my-app.tar user@server:/path/to/upload/
#在服务器上加载并运行镜像
docker load -i my-app.tar
#然后运行容器:
docker run -d -p 8080:8080 myapp

如果你有自己的私有或公共镜像仓库(如 Harbor、Docker Hub、阿里云 ACR),也可以直接推送和拉取镜像

#推送本地镜像
docker tag my-app registry.example.com/my-app
docker push registry.example.com/my-app
#服务器上拉取并运行
docker pull registry.example.com/my-app
docker run -d -p 80:5000 registry.example.com/my-app

 

其他总结

window上使用docker desktop执行docker命令报错docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified

完整的报错:

 ERROR: error during connect: this error may indicate that the docker daemon is not running: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/_ping": open //./pipe/docker_engine: The system cannot find the file specified.

问题处理:

docker desktop退出了,需要打开下,显示运行中了再执行命令

ERROR [internal] load metadata for registry.cn-hangzhou.aliyuncs.com

docker build之前要先登录阿里云的账号:

docker login registry.cn-hangzhou.aliyuncs.com

根据提示输入用户名和密码,提示Login Succeeded即可

本站部分内容转载自互联网,如果有网站内容侵犯了您的权益,可直接联系我们删除,感谢支持!