docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题

这篇具有很好参考价值的文章主要介绍了docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么用docker export呢,😔~由于客户环境太恶心了,测试一次更是麻烦,所以什么都得在本地调试完成,争取每次测试+上线一次通过才行,说多了都是泪。

由于踩坑几次了,每次都忘记,且每次网上找半天也难以发现问题,今日决定记录一笔。

在进行docker export导出镜像,然后import后运行,发现要么提示无执行命令,要么找不到执行程序,这都是因为在export后都失效了,所以我们需要在当前Dockerfile里重新声明一下,然后我这还发现容器内中文乱码,所以编码也需设置一下,具体配置如下:
Dockerfile

FROM libreoffice_jre:v3
MAINTAINER baikunlong "bklbug@qq.com"

WORKDIR /opt/kkFileView-4.4.0-SNAPSHOT

# 开始重新设置下相关环境变量
ENV LC_ALL zh_CN.utf8
ENV JAVA_HOME /usr/local/jdk1.8.0_251
ENV JRE_HOME ${JAVA_HOME}/jre
ENV CLASSPATH .:${JAVA_HOME}/lib:${JRE_HOME}/lib
ENV PATH ${JAVA_HOME}/bin:$PATH
# 结束重新设置下相关环境变量

ENV KKFILEVIEW_BIN_FOLDER /opt/kkFileView-4.4.0-SNAPSHOT/bin

ADD kkFileView-4.4.0-SNAPSHOT.tar.gz /opt/
ENTRYPOINT ["java","-Dfile.encoding=UTF-8","-Dspring.config.location=/opt/kkFileView-4.4.0-SNAPSHOT/config/application.properties","-jar","/opt/kkFileView-4.4.0-SNAPSHOT/bin/kkFileView-4.4.0-SNAPSHOT.jar",">","/opt/kkFileView-4.4.0-SNAPSHOT/log/kkFileView.log","2>&1"]

想了想,其实用docker save也行,把本地测试环境改成和生产环境都一样就可以了,但是都折腾这么久了,要继续~

对于已经运行但没配置过编码的容器,在进入容器前可加LANG环境变量,如下:
docker exec -it nginx env LANG=C.UTF-8 /bin/bash
这样进入容器后就能显示中文了,但是还是强烈推荐删了重新build镜像,比如我在用kkfileview文件预览那块时中文文件名的文件会报错的。

顺手记录
build.sh

docker build -t bkl/kkfileview:4.4.0 .

run.sh文章来源地址https://www.toymoban.com/news/detail-610311.html

docker rm -f kkfileview18012

#docker run -d --name kkfileview18012 -p 18012:18012 --restart=always --privileged=true -v /docker_data/kkfileview18012/log:/opt/kkFileView-4.4.0-SNAPSHOT/log -v /docker_data/kkfileview18012/config:/opt/kkFileView-4.4.0-SNAPSHOT/config -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Shanghai bkl/kkfileview:4.4.0

docker run -d --name kkfileview18012 -p 18012:18012 --restart=always --privileged=true -v /docker_data/kkfileview18012/file:/opt/kkFileView-4.4.0-SNAPSHOT/file -v /docker_data/kkfileview18012/log:/opt/kkFileView-4.4.0-SNAPSHOT/log -v /docker_data/kkfileview18012/config:/opt/kkFileView-4.4.0-SNAPSHOT/config -v /etc/localtime:/etc/localtime:ro -e TZ=Asia/Shanghai bkl/kkfileview:4.4.0

docker logs -f kkfileview18012

到了这里,关于docker export,import后无法运行,如java命令找不到,运行后容器内编码有问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • docker-java 用Java操作docker创建容器并运行运行容器

    参考上一篇文章:Docker设置开启远程访问 Apache HttpClient 5介绍: This transport is based on Apache HttpClient library version 5, which has a great flexibility and allows us to implement all Docker-specific features and protocols required, without having to use internal APIs or anything. It has everything to become the default transport of

    2023年04月09日
    浏览(80)
  • idea运行Java程序错误: 找不到或无法加载主类

    问题描述 :创建Java项目,运行main方法,程序报错 错误: 找不到或无法加载主类 Main Process finished with exit code 1 解决过程 :打开Java项目,在src同级目录下创建out文件 之后点击菜单栏的 File - Project Structure - Project 查看Complier output下的路径是否为刚才创建的out文件目录 为确保解

    2023年04月23日
    浏览(59)
  • Docker(镜像、容器、仓库)工具安装使用命令行选项及构建、共享和运行容器化应用程序

    👧个人主页:@小沈YO. 😚小编介绍:欢迎来到我的乱七八糟小星球🌝 🔑本章内容:Docker工具安装使用、命令行选项及构建、共享和运行容器化应用程序时的主要步骤 记得 评论📝 +点赞👍 +收藏😽 +关注💞哦~ 提示:以下是本篇文章正文内容,下面案例可供参考 以下是在常

    2024年02月05日
    浏览(62)
  • docker使用export/import出现错误:Error response from daemon: No command specified

    之前一个使用save和load操作镜像,有次试着使用 export 和 import 来操作。 1,export导出镜像 执行下面的命令后,文件会保存到当前命令执行的目录下。 使用 docker export 命令根据容器的 ID 将镜像导出形成一个文件如下。 docker export 2af444b9693f container_save.tar 2,导入镜像 使用 docke

    2024年04月10日
    浏览(62)
  • Docker的常用命令||Docker是个流行的容器化平台,它允许你打包、分发和运行应用程序。

    Docker是一个流行的容器化平台,它允许你打包、分发和运行应用程序。以下是一些常用的Docker命令及其示例用法: 1. **docker run**: 用于运行一个新的容器实例。     例如,运行一个Nginx容器: 2. **docker stop**: 停止一个正在运行的容器。      例如,停止一个名为`my_nginx_conta

    2024年02月19日
    浏览(50)
  • Docker 中 jdk8容器里无法使用 JDK 的 jmap 等命令的问题

    项目部署在 CentOS 服务器上。项目偶尔会出现无响应的情况,这时理所当然要上去用 JDK 相关命令看看堆栈和GC等信息了。 进入 Java 程序所在容器:docekr-compose exec api bash,进入到 api 容器的 bash 终端。 jps 打印 Java 进程: 嗯,jps 命令还是能正常使用的,api.jar 程序的进程号是

    2024年02月09日
    浏览(38)
  • docker容器运行成功但无法访问,原因分析及对应解决方案(最新,以Tomcat为例,亲测有效)

    原因分析:     是否能访问当运行docker容器虚拟机(主机)地址     虚拟机对应的端口号是否开启或者防墙是否关闭     端口映射是否正确(这个是我遇到的)     tomcat下载的是最新版,docker运行后里面是没有东西的,会报404 一般都是这几个原因导致的明明docker容器运行

    2024年02月10日
    浏览(41)
  • 如何在 Linux 命令行下玩转 Docker——如何使用 Dockerfile 来构建和运行容器镜像

    作者:禅与计算机程序设计艺术 Docker 是一款开源的容器化技术,它利用 Linux 内核的容器特性,将应用部署到独立的进程环境中。基于容器技术可以极大地提高开发者和运维人员的效率,降低部署、测试和生产环节中的成本,有效地实现云计算资源的弹性伸缩。 本文主要介绍

    2024年02月07日
    浏览(53)
  • 【自学Docker 】Docker export命令

    docker export 命令可以用于将 Docker容器 里的文件系统作为一个 tar 归档文件导出到标准输出。docker export 命令后面的 CONTAINER 可以是容器Id,或者是容器名。 docker save 命令用于将 Docker 镜像保存成 tar 包,注意这两者的区别。docker export 命令的相对应的命令为 docker import 。 参数 说

    2024年02月13日
    浏览(35)
  • 逸学Docker【java工程师基础】2.Docker镜像容器基本操作+安装MySQL镜像运行

    在这里我们的应用程序比如redis需要构建成镜像, 它作为一个Docker文件就可以进行 构建 ,构建完以后他是在 本地的 ,我们可以 推送 到镜像服务器,逆向可以 拉取 到上传的镜像,或者说我们可以保存为 压缩包 进行 相互传递 。 在本地的镜像可以传来传去,本身也可以查看

    2024年02月01日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包