CentOS 7 docker部署jar包

1. 前期准备

可运行jar包:demo.jar
制作镜像文件:Dockerfile,文件具体内容如下:

# 基础镜像
FROM java:openjdk-8

# 作者或联系方式
MAINTAINER wal

# 将demo.jar文件复制到容器,并命名为demo
# COPY 主机文件 容器文件
# 主机文件要写相对路径
COPY ./demo.jar demo.jar

# 容器暴露端口
EXPOSE 9090

# 容器运行执行的命令
# --spring.rabbitmq.host=192.168.138.128 修改application配置文件,如果无rabbitmq,可忽略
ENTRYPOINT ["java", "-jar", "demo.jar", "--spring.rabbitmq.host=192.168.138.128"]

Dockerfile

2. 构建镜像

将demo.jar和Dockerfile放到同一目录下,在该目录下打包生成镜像,具体命令如下:

# java-demo 镜像名
# "." 将当前目录下所有内容都进行打包
docker build -t java-demo .

构建容器

3. 运行容器

# --name java-demo 容器名为java-demo
# -p 9090:9090 主机端口映射为容器端口,主机端口:容器端口
# -d 后台运行
# --restart=always 重启策列
# java-demo:latest 镜像名
docker run --name java-demo -p 9090:9090 -d --restart=always  java-demo:latest

# 查看容器
docker ps

# 追踪日志
docker logs -f java-demo

运行容器

4. 查看结果

调用API

5. 其他

5.1 移除命令

# 移除容器
docker rm -f java-demo

# 移除镜像
docker image rm  java-demo

移除结果

5.2 遇到的问题

5.2.1 COPY failed: file not found in build context or excluded by .dockerignore: stat test/Docker/demo.jar: file does not exist

COPY failed

原因:Dockerfile中的COPY命令,主机文件使用了绝对路径
解决:主机文件改为相对路径即可

5.2.2 Error: Invalid or corrupt jarfile demo.jar

Error: Invalid or corrupt jarfile demo.jar
原因:通过拖拉或复制文件的方式上传demo.jar到虚拟机,导致文件受损(注:demo.jar在windows上是可执行的)
解决:通过WinSCP等软件上传demo.jar

6. 参考

链接: Docker Dockerfile
链接: Invalid or corrupt jarfile jar

若有不足,欢迎指出,开发之路,与君共勉!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Docker部署Java项目,可以按照以下步骤进行操作: 1. 首先,确保已经安装了DockerDocker Compose。可以在终端中输入`docker-compose -v`检查Docker Compose的版本信息。 2. 将Java项目的jar包上传到CentOS服务器上,可以使用SFTP或其他文件传输方式。将jar包Dockerfile文件放在同一目录下。 3. 创建一个名为Dockerfile的文本文件,内容如下: ``` FROM openjdk:8-jdk-alpine COPY your-jar-file.jar /your-jar-file.jar CMD ["java", "-jar", "/your-jar-file.jar"] ``` 其中,`your-jar-file.jar`是你上传的Java项目的jar包的文件名。这个Dockerfile文件将基于OpenJDK 8镜像创建一个容器,并将你的jar包复制到容器中,然后运行该jar包。 4. 安装Docker,可以按照以下步骤进行操作: ``` sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-selinux \ docker-engine-selinux \ docker-engine \ docker-ce ``` 然后,安装Docker: ``` sudo yum install -y yum-utils device-mapper-persistent-data lvm2 sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo yum install docker-ce sudo systemctl start docker sudo systemctl enable docker ``` 这将卸载旧版本的Docker,并安装最新的Docker。 5. 安装Docker Compose,通过以下命令进行安装: ``` sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose ``` 这将下载并安装最新版本的Docker Compose。 现在,你可以使用Docker Compose来部署你的Java项目。创建一个名为docker-compose.yml的文件,并编写适合你项目的配置。然后,在终端中运行`docker-compose up -d`命令来启动容器。 通过以上步骤,你可以使用Docker部署你的Java项目。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值