时间:2018-7-31
现象:项目在本地启动下载文件压缩后,没有出现乱码问题,但在docker容器中部署项目后,写出文件压缩后中文乱码
解决过程: 首先在代码中尝试了多种写出方法。因为有文件需要压缩,使用最java自带工具类java.util.zip,出现了乱码(乱码为???)。此时想到的肯定是自己java编码压缩有问题,然后又换成了org.apache.tools.zip还是乱码,那我就想了啊,是不是在压缩前生成文件时就乱码了呢?
一看文件果然是输出文件时文件名就已经乱码了,此时想到的就是Java 的系统属性 sun.jnu.encoding 的编码问题,然后在系统中打印出来,如图,系统编码为ANSI_X3.4-1968,

顿时感觉问题有希望解决了,在输出文件之前添加了System.setProperty("sun.jnu.encoding","utf-8");此时再打印出来

 虽然已经改成了utf-8但是文件输出的还是乱码,这时候真的很尴尬了,试过很多方法从代码下手试过很多方法依旧不行,此时心里严重怀疑是机器问题,上网查询了一下关于docker编码的问题,发现大家的却经常碰到docker中文编码错误,想去找dockerfile文件看一下,然而怎么找都找不到,问管服务器的人,那人也不吊我,实在没办法硬着头皮让那人换了一个docker镜像(换的这个dokcer镜像是其他项目使用的,文件写出没有问题),然后!然后就好了!此时再去看看java的系统变量编码sun.jnu.encoding就成了utf-8。
果然还是系统编码问题,大家以后还是要相信自己的判断啊!当然前提是要从自身开始找问题,若尝试过各种方法还是不行,就要换一个思路去解决了!不能走进死胡同!
附文件压缩代码:

package test;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;public class ZipTest1 {public static void main(String[] args){String sysDir = System.getProperty("user.home")+"/测试文件夹";System.out.println(sysDir);String txtFileName = new String("测试文本.txt");String txtContent = new String("测试文本内容");
System.out.println("sun.jnu.encoding"+System.getProperty("sun.jnu.encoding"));File fileDir = new File(sysDir);if(!fileDir.exists()){fileDir.mkdirs();}try {OutputStreamWriter oStreamWriter = new OutputStreamWriter(new FileOutputStream(sysDir+File.separator+txtFileName), "utf-8");oStreamWriter.append(txtContent);oStreamWriter.flush();oStreamWriter.close();}catch (IOException e){e.printStackTrace();}try {//压缩文件夹以及文件内容FileOutputStream fos = new FileOutputStream(new File(sysDir + ".zip"));ZipOutputStream zos = new ZipOutputStream(fos);compressbyType(fileDir,zos,"" );//记得关闭输出流zos.close();}catch (Exception e){e.printStackTrace();}}private static void compressbyType(File src, ZipOutputStream zos, String zipDir) {if (!src.exists())return;System.out.println("压缩路径" + zipDir + src.getName());//判断文件是否是文件,如果是文件调用compressFile方法,如果是路径,则调用compressDir方法;if (src.isFile()) {//src是文件,调用此方法compressFile(src, zos, zipDir);} else if (src.isDirectory()) {//sr是文件夹,调用此方法compressDir(src, zos, zipDir);}}private static void compressFile(File file, ZipOutputStream zos,String zipDir) {//        String systemEncoding = System.getProperty("file.encoding");if (!file.exists())return;try {BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file));
//            ZipEntry entry = new ZipEntry(baseDir + new String(file.getName().getBytes(systemEncoding),"UTF-8"));ZipEntry entry = new ZipEntry(zipDir+file.getName());zos.putNextEntry(entry);int count;byte[] buf = new byte[1024];while ((count = bis.read(buf)) != -1) {zos.write(buf, 0, count);}bis.close();} catch (Exception e) {// TODO: handle exception}}private static void compressDir(File dir, ZipOutputStream zos,String zipDir) {if (!dir.exists())return;File[] files = dir.listFiles();if(files.length == 0){try {zos.putNextEntry(new ZipEntry(zipDir + dir.getName()+File.separator));} catch (IOException e) {e.printStackTrace();}}for (File file : files) {compressbyType(file, zos, zipDir + dir.getName() + File.separator);}}
}

<!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwiYmxvY2tJZCI6IjU5OTctMTUzMzAwOTcxNDAyOSIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLosaEifSx7ImNoYXIiOiLvvJoifSx7ImNoYXIiOiLpobkifSx7ImNoYXIiOiLnm64ifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLmnKwifSx7ImNoYXIiOiLlnLAifSx7ImNoYXIiOiLlkK8ifSx7ImNoYXIiOiLliqgifSx7ImNoYXIiOiLkuIsifSx7ImNoYXIiOiLovb0ifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLljosifSx7ImNoYXIiOiLnvKkifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmsqEifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLpl64ifSx7ImNoYXIiOiLpopgifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLkvYYifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiJkIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJrIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiLlrrkifSx7ImNoYXIiOiLlmagifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLpg6gifSx7ImNoYXIiOiLnvbIifSx7ImNoYXIiOiLpobkifSx7ImNoYXIiOiLnm64ifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLlhpkifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLljosifSx7ImNoYXIiOiLnvKkifSx7ImNoYXIiOiLlkI4ifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sImJsb2NrSWQiOiI5NTIxLTE1MzMwMDk3MzU1MDMiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi6KejIn0seyJjaGFyIjoi5YazIn0seyJjaGFyIjoi6L+HIn0seyJjaGFyIjoi56iLIn0seyJjaGFyIjoiOiJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiLpppYifSx7ImNoYXIiOiLlhYgifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLku6MifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLkuK0ifSx7ImNoYXIiOiLlsJ0ifSx7ImNoYXIiOiLor5UifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLlpJoifSx7ImNoYXIiOiLnp40ifSx7ImNoYXIiOiLlhpkifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLmlrkifSx7ImNoYXIiOiLms5UifSx7ImNoYXIiOiLjgIIifSx7ImNoYXIiOiLlm6AifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLmnIkifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLpnIAifSx7ImNoYXIiOiLopoEifSx7ImNoYXIiOiLljosifSx7ImNoYXIiOiLnvKkifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLkvb8ifSx7ImNoYXIiOiLnlKgifSx7ImNoYXIiOiLmnIAifSx7ImNoYXIiOiJqIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InYifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoi6IeqIn0seyJjaGFyIjoi5bimIn0seyJjaGFyIjoi5belIn0seyJjaGFyIjoi5YW3In0seyJjaGFyIjoi57G7In0seyJjaGFyIjoiaiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJ2In0seyJjaGFyIjoiYSJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoidCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6InoifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoicCJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLnjrAifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLvvIgifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLkuLoifSx7ImNoYXIiOiLvvJ8ifSx7ImNoYXIiOiLvvJ8ifSx7ImNoYXIiOiLvvJ8ifSx7ImNoYXIiOiLvvIkifSx7ImNoYXIiOiLjgIIifSx7ImNoYXIiOiLmraQifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLmg7MifSx7ImNoYXIiOiLliLAifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLogq8ifSx7ImNoYXIiOiLlrpoifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLoh6oifSx7ImNoYXIiOiLlt7EifSx7ImNoYXIiOiJqIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6InYifSx7ImNoYXIiOiJhIn0seyJjaGFyIjoi57yWIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi5Y6LIn0seyJjaGFyIjoi57ypIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi54S2In0seyJjaGFyIjoi5ZCOIn0seyJjaGFyIjoi5Y+IIn0seyJjaGFyIjoi5o2iIn0seyJjaGFyIjoi5oiQIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJnIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiYSJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJoIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoibyJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJsIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJ6In0seyJjaGFyIjoiaSJ9LHsiY2hhciI6InAifSx7ImNoYXIiOiLov5gifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLpgqMifSx7ImNoYXIiOiLmiJEifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLmg7MifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLllYoifSx7ImNoYXIiOiLvvIwifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLkuI0ifSx7ImNoYXIiOiLmmK8ifSx7ImNoYXIiOiLlnKgifSx7ImNoYXIiOiLljosifSx7ImNoYXIiOiLnvKkifSx7ImNoYXIiOiLliY0ifSx7ImNoYXIiOiLnlJ8ifSx7ImNoYXIiOiLmiJAifSx7ImNoYXIiOiLmlocifSx7ImNoYXIiOiLku7YifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLlsLEifSx7ImNoYXIiOiLkubEifSx7ImNoYXIiOiLnoIEifSx7ImNoYXIiOiLkuoYifSx7ImNoYXIiOiLlkaIifSx7ImNoYXIiOiLvvJ8ifV19fSx7ImJsb2NrVHlwZSI6InBhcmFncmFwaCIsInN0eWxlcyI6eyJhbGlnbiI6ImxlZnQiLCJpbmRlbnQiOjAsInRleHQtaW5kZW50IjowLCJsaW5lLWhlaWdodCI6MS43NX0sImJsb2NrSWQiOiI1NDMwLTE1MzMwMzU1NDgzOTgiLCJyaWNoVGV4dCI6eyJpc1JpY2hUZXh0Ijp0cnVlLCJrZWVwTGluZUJyZWFrIjp0cnVlLCJkYXRhIjpbeyJjaGFyIjoi5LiAIn0seyJjaGFyIjoi55yLIn0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5p6cIn0seyJjaGFyIjoi54S2In0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoi6L6TIn0seyJjaGFyIjoi5Ye6In0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5paHIn0seyJjaGFyIjoi5Lu2In0seyJjaGFyIjoi5ZCNIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5beyIn0seyJjaGFyIjoi57uPIn0seyJjaGFyIjoi5LmxIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5q2kIn0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5oOzIn0seyJjaGFyIjoi5YiwIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi5bCxIn0seyJjaGFyIjoi5pivIn0seyJjaGFyIjoiSiJ9LHsiY2hhciI6ImEifSx7ImNoYXIiOiJ2In0seyJjaGFyIjoiYSJ9LHsiY2hhciI6IiAifSx7ImNoYXIiOiLnmoQifSx7ImNoYXIiOiLns7sifSx7ImNoYXIiOiLnu58ifSx7ImNoYXIiOiLlsZ4ifSx7ImNoYXIiOiLmgKcifSx7ImNoYXIiOiIgIn0seyJjaGFyIjoicyJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiLiJ9LHsiY2hhciI6ImoifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoidSJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6ImMifSx7ImNoYXIiOiJvIn0seyJjaGFyIjoiZCJ9LHsiY2hhciI6ImkifSx7ImNoYXIiOiJuIn0seyJjaGFyIjoiZyJ9LHsiY2hhciI6IsKgIn0seyJjaGFyIjoi55qEIn0seyJjaGFyIjoi57yWIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi54S2In0seyJjaGFyIjoi5ZCOIn0seyJjaGFyIjoi5ZyoIn0seyJjaGFyIjoi57O7In0seyJjaGFyIjoi57ufIn0seyJjaGFyIjoi5LitIn0seyJjaGFyIjoi5omTIn0seyJjaGFyIjoi5Y2wIn0seyJjaGFyIjoi5Ye6In0seyJjaGFyIjoi5p2lIn0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi5aaCIn0seyJjaGFyIjoi5Zu+In0seyJjaGFyIjoi77yMIn0seyJjaGFyIjoi57O7In0seyJjaGFyIjoi57ufIn0seyJjaGFyIjoi57yWIn0seyJjaGFyIjoi56CBIn0seyJjaGFyIjoi5Li6In0seyJjaGFyIjoiQSJ9LHsiY2hhciI6Ik4ifSx7ImNoYXIiOiJTIn0seyJjaGFyIjoiSSJ9LHsiY2hhciI6Il8ifSx7ImNoYXIiOiJYIn0seyJjaGFyIjoiMyJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiI0In0seyJjaGFyIjoiLSJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiI5In0seyJjaGFyIjoiNiJ9LHsiY2hhciI6IjgifSx7ImNoYXIiOiIsIn0seyJjaGFyIjoi6aG/In0seyJjaGFyIjoi5pe2In0seyJjaGFyIjoi5oSfIn0seyJjaGFyIjoi6KeJIn0seyJjaGFyIjoi6ZeuIn0seyJjaGFyIjoi6aKYIn0seyJjaGFyIjoi5pyJIn0seyJjaGFyIjoi5biMIn0seyJjaGFyIjoi5pybIn0seyJjaGFyIjoi6KejIn0seyJjaGFyIjoi5YazIn0seyJjaGFyIjoi5LqGIn0seyJjaGFyIjoiLCJ9LHsiY2hhciI6IuWcqCJ9LHsiY2hhciI6Iui+kyJ9LHsiY2hhciI6IuWHuiJ9LHsiY2hhciI6IuaWhyJ9LHsiY2hhciI6IuS7tiJ9LHsiY2hhciI6IuS5iyJ9LHsiY2hhciI6IuWJjSJ9LHsiY2hhciI6Iua3uyJ9LHsiY2hhciI6IuWKoCJ9LHsiY2hhciI6IuS6hiJ9LHsiY2hhciI6IlMifSx7ImNoYXIiOiJ5In0seyJjaGFyIjoicyJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJlIn0seyJjaGFyIjoibSJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJzIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InQifSx7ImNoYXIiOiJQIn0seyJjaGFyIjoiciJ9LHsiY2hhciI6Im8ifSx7ImNoYXIiOiJwIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6InIifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoieSJ9LHsiY2hhciI6IigifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6InMifSx7ImNoYXIiOiJ1In0seyJjaGFyIjoibiJ9LHsiY2hhciI6Ii4ifSx7ImNoYXIiOiJqIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiIuIn0seyJjaGFyIjoiZSJ9LHsiY2hhciI6Im4ifSx7ImNoYXIiOiJjIn0seyJjaGFyIjoibyJ9LHsiY2hhciI6ImQifSx7ImNoYXIiOiJpIn0seyJjaGFyIjoibiJ9LHsiY2hhciI6ImcifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6IiwifSx7ImNoYXIiOiJcIiJ9LHsiY2hhciI6InUifSx7ImNoYXIiOiJ0In0seyJjaGFyIjoiZiJ9LHsiY2hhciI6Ii0ifSx7ImNoYXIiOiI4In0seyJjaGFyIjoiXCIifSx7ImNoYXIiOiIpIn0seyJjaGFyIjoiOyJ9XX19LHsiYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwiYmxvY2tJZCI6IjcyMjUtMTUzMzAzNTkwNDExMiIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLmraQifSx7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLlho0ifSx7ImNoYXIiOiLmiZMifSx7ImNoYXIiOiLljbAifSx7ImNoYXIiOiLlh7oifSx7ImNoYXIiOiLmnaUifV19fV0=-->

<!--5f39ae17-8c62-4a45-bc43-b32064c9388a:W3siYmxvY2tUeXBlIjoicGFyYWdyYXBoIiwic3R5bGVzIjp7ImFsaWduIjoibGVmdCIsImluZGVudCI6MCwidGV4dC1pbmRlbnQiOjAsImxpbmUtaGVpZ2h0IjoxLjc1fSwiYmxvY2tJZCI6IjQ2NjUtMTUzMzAwODc3NjgwMCIsInJpY2hUZXh0Ijp7ImlzUmljaFRleHQiOnRydWUsImtlZXBMaW5lQnJlYWsiOnRydWUsImRhdGEiOlt7ImNoYXIiOiLml7YifSx7ImNoYXIiOiLpl7QifSx7ImNoYXIiOiLvvJoifSx7ImNoYXIiOiIyIn0seyJjaGFyIjoiMCJ9LHsiY2hhciI6IjEifSx7ImNoYXIiOiI4In0seyJjaGFyIjoiLSJ9LHsiY2hhciI6IjcifSx7ImNoYXIiOiItIn0seyJjaGFyIjoiMyJ9LHsiY2hhciI6IjEifV19fV0=-->

记一次Docker容器中写出文件编码错误相关推荐

  1. 向Docker容器中导入sql文件

    1 使用docker cp 命令 复制.sql文件到容器中的目录 docker cp /root/tables.sql /tmp/ 2 进入容器内部,导入sql文件到数据库 docker exec - ...

  2. 进入docker容器中查看文件夹_如何在docker容器文件夹中提供文件夹权限

    我正在我的Dockerfile中创建一个文件夹,我想给它一个写权限.但是当我尝试这样做时,我得到了许可被拒绝的错误 FROM python:2.7 RUN pip install Flask==0.1 ...

  3. 查看docker内部路径_web应用在Docker容器中部署(Windows)

    前言 容器化是软件开发的一种方法,通过该方法可将应用程序或服务.其依赖项及其配置(抽象化为部署清单文件)一起打包为容器映像. 容器化应用程序可以作为一个单元进行测试,并可以作为容器映像实例部署到主机操 ...

  4. Docker 容器中的域名解析问题

    问题描述 假如,你的开发环境是用 Docker 搭建的,当用 CURL 来访问局域网内另外一台服务器的 API 时,会出现域名无法解析的情况. 出现类似下面的错误提示信息: cURL error 6: ...

  5. Docker容器中MySQL最大连接数被限制为214的解决方案

    Docker容器中MySQL最大连接数被限制为214的解决方案 原文:Docker容器中MySQL最大连接数被限制为214的解决方案 一.背景 话说笔者在上次的博客里简单的讲了一下调整MySQL最大连 ...

  6. 在docker容器中创建用户组和用户,并且多用户共用一个anaconda环境

    转载自:https://www.cnblogs.com/devilmaycry812839668/p/13760815.html 在docker容器中创建用户组和用户,并且多用户共用一个anacond ...

  7. Docker容器中GUI软件的远程图形界面交互:mobaXterm+SSH,以脑影像处理软件FSL为例;FSL6.0.3完整安装与可视化;docker容器图形化;远程登录docker容器;

    前言   对docker容器中软件的操作,是基于命令行的,这就导致了习惯图形化界面的人比较难以使用docker,而它又是一个神器,所以很难受.一般情况下,可以给容器安装一个桌面环境,然后用类似VNC的 ...

  8. 性能监控之 JMX 监控 Docker 容器中的 Java 应用

    文章目录 一.前言 二.遇到的问题 1.问题现象 2.问题分析 三.解决方案 四.总结 一.前言 今天在配置 docker 和 JMX 监控的时候,看到有一个细节和非容器环境中的 JMX 配置不太一样 ...

  9. 【Rust日报】 2019-05-27:toast - 支持在docker容器中运行任务的工具

    Rust中文社区翻译小组招募 #activity #RustChina 首批任务:Rust官网翻译 这里有详细说明 https://github.com/rust-lang/www.rust-lang ...

最新文章

  1. C++ 11 笔记 (四) : std::bind
  2. discuz设置用户每天回帖数_[建站教程]Discuz3.4设置QQ互联登陆教程
  3. ListView(2)
  4. 在 VMware ESXi 5.5 和 6.0.x 中支持大于 2 TB 的虚拟机磁盘 (2058287)
  5. 设计一算法查找链表的中间结点。要求该算法的时间复杂度为O(n),空间复杂度为O(1)
  6. 谈谈struts2的工作原理
  7. 位置编码在注意机制中的作用
  8. 杭电计算机2010年笔试真题详解
  9. 建立账套时,没有选择客户分类档案
  10. MATLAB画演化博弈图,演化博弈matlab程序与作图
  11. 十一打卡推荐 | 在北京798 UCCA,百度AI的这场「秀」把我看high了
  12. Axure 设计App界面
  13. python bool类型_python bool数据类型
  14. Python中如何读取npy、npz文件?
  15. 常用docker镜像
  16. Hive-时间日期trunc-日期与数字截取函数
  17. there is no source code available for the current location 解决方法
  18. 易订宝 移动营销网络订货平台
  19. 使用Rundll32.exe和Rundll.exe
  20. 服务器负载均衡 链路负载均衡 《CDN技术详解》

热门文章

  1. 超赞:不愧是“阿里内部软件测试面试笔记”从头到尾,全是精华
  2. 探索大寰夹爪| 大寰PGE-5平行夹爪亮点与指示灯判断
  3. IELTS雅思总分计算器(自动生成柱状图)
  4. 幼儿园择校记-海淀清河附近的家长看过来喽!
  5. 【计算机图形学】图形变换(以任意直线为对称轴的对称变换)
  6. 小说《Walden.tet》单词词频统计
  7. 跳槽遇上降薪,必须这么办!
  8. 改进差分进化算法及其求解柔性作业车间调度问题(Python代码实现)
  9. 群翔ShopNum1微信商城,开启微信电商新时代
  10. VOCS在线监测系统 VOCS监测环保数采仪