小编Ser*_*nov的帖子

在docker-compose yml中重用环境变量

是否可以重用多个容器之间共享的环境变量以避免重复,如下例所示:

version: '2'

services:

  db:
    image: example/db
    ports:
      - "8443:8443" 
    container_name: db
    hostname: db
    environment:
      - USER_NAME = admin 
      - USER_PASSWORD = admin 

svc:
  image: example/svc
  depends_on:
    - db
  ports:
    - "9443:9443"
  container_name: svc
  hostname: svc
  environment:
    - DB_URL = https://db:8443
    - DB_USER_NAME = admin
    - DB_USER_PASSWORD = admin 
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

39
推荐指数
3
解决办法
2万
查看次数

如何在Docker中监视java应用程序内存使用情况

我在Docker容器中的tomcat上运行java web应用程序.

有没有办法监视java应用程序的内存使用情况?我尝试使用jconsoledocker的进程ID,但它告诉我Invalidate process id

我也在tomcat中启用JMX,但不知道如何绑定它.我可以使用visualvm我的本地绑定主机,但找不到绑定到主机内部的docker的方法.

有没有什么好办法实现这个目标?

谢谢

memory monitoring jvm docker cadvisor

10
推荐指数
2
解决办法
7511
查看次数

Ubuntu 14.04 LTS VMware和Virtual Box ova/ovf图像

我有一个Java应用程序,我想使用Ubuntu 14.04 LTS作为VMware和VirtualBox分发为虚拟机设备映像(ovf或ova).该映像将包括操作系统本身,所需的操作系统软件包,我的Java应用程序,所有这些都是预配置的,并且在开机时可以立即运行.

创建OVF和OVA文件的最佳方法是什么?

vmware virtualbox ovf ubuntu-14.04

9
推荐指数
1
解决办法
3万
查看次数

选择TSDB进行一次性智能家居安装

我正在构建一个一次性的智能家居数据收集盒.它预计将运行在raspberry-pi级机器(~1G RAM)上,每天处理大约200K数据点(每个64位int).我们一直在使用vanilla MySQL,但性能开始崩溃,特别是对于给定时间间隔内的条目数量的查询.

据我了解,这基本上就是为时间序列数据库设计的.如果有的话,关于我的情况的不寻常的事情是音量相对较低,可用的RAM量也是如此.

快速浏览维基百科可以看出OpenTSDB,InfluxDB和BlueFlood.OpenTSDB建议使用4G的RAM,但这可能适用于高容量设置.InfluxDB实际上提到了传感器读数,但我找不到很多关于需要什么样的资源的信息.

好的,所以这是我的实际问题:是否有明显的红旗会使这些系统中的任何一个不适合我描述的项目?

我意识到这是一个火焰的邀请,所以我指望人们把它保持在明亮和乐于助人的一面.提前谢谢了!

mysql raspberry-pi opentsdb influxdb raspberry-pi2

9
推荐指数
1
解决办法
1032
查看次数

Google Cloud Bigtable协处理器支持

Google Cloud BigTable不支持协处理器:

不支持协处理器.您无法创建实现org.apache.hadoop.hbase.coprocessor接口的类.

https://cloud.google.com/bigtable/docs/hbase-differences

我可以理解协处理器需要在每个Tablet(RS)节点上部署客户代码(jar).尽管如此,端点协处理器对HBase应用程序至关重要,可确保在某些情况下的数据位置.Apache Phoenix等HBase扩展依赖于Observer协处理器来维护二级索引,因此缺乏协处理器支持看起来像是一个与我不兼容的主要领域.

未来是否可以支持协处理器,以及在BigTable平板电脑上执行自定义Java"存储过程"有哪些变通方法?

更新1: Apache Phoenix coprosessors列表:

  • GroupedAggregateRegionObserver
  • 索引
  • MetaDataEndpointImpl
  • MetaDataRegionObserver
  • ScanRegionObserver
  • SequenceRegionObserver
  • ServerCachingEndpointImpl
  • UngroupedAggregateRegionObserver

hbase phoenix google-cloud-bigtable

8
推荐指数
1
解决办法
837
查看次数

在docker容器中禁用ip v6

我在docker主机上启用了ipv6,但是有一个特定的容器,其中ipv6导致问题.有没有办法通过命令行参数或dockerfile指令启动没有ipv6支持的容器?

ipv6 docker

8
推荐指数
5
解决办法
2万
查看次数

在docker中隐藏/混淆环境参数

我使用mysql图像作为示例,但问题是通用的.

用于在docker中启动mysqld的密码在docker ps中不可见,但它在docker inspect中可见:

sudo docker run --name mysql-5.7.7 -e MYSQL_ROOT_PASSWORD=12345 -d mysql:5.7.7

CONTAINER ID        IMAGE               COMMAND                   CREATED             STATUS              PORTS               NAMES
b98afde2fab7        mysql:5.7.7         "/entrypoint.sh mysq   6 seconds ago       Up 5 seconds        3306/tcp            mysql-5.7.7

sudo docker inspect b98afde2fab75ca433c46ba504759c4826fa7ffcbe09c44307c0538007499e2a

"Env": [
        "MYSQL_ROOT_PASSWORD=12345",
        "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
        "MYSQL_MAJOR=5.7",
        "MYSQL_VERSION=5.7.7-rc"
    ]
Run Code Online (Sandbox Code Playgroud)

有没有办法隐藏/混淆启动容器时传递的环境参数.或者,是否可以通过引用文件传递敏感参数?

mysql docker

6
推荐指数
2
解决办法
2029
查看次数

FileChannel零拷贝传输无法将字节复制到SocketChannel

在Java中使用零拷贝将大文件从文件传输到套接字时,我发现了一些奇怪的行为.我的环境:

  • Windows 7 64位JDK 1.6.0_45和1.7.0_79.
  • Centos 6.6 64位JDK 1.6.0_35

程序的作用:客户端将输入文件复制到套接字中,服务器使用零复制方法将套接字复制到输出文件:transferFrom和transferTo.如果文件大小相对较大,并非所有字节都到达服务器,在Windows情况下为100Mb +,在Centos情况下为2GB +.客户端和服务器驻留在同一台计算机上,localhost地址用于传输数据.

行为因操作系统而异.在Windows上,客户端成功完成transferTo方法.传输的字节数等于输入文件大小.

long bytesTransferred = fileChannel.transferTo(0, inputFile.length(), socketChannel);

另一方面,服务器报告较少的接收字节数.

long transferFromByteCount = fileChannel.transferFrom(socketChannel, 0, inputFile.length());

在Linux上,即使输入文件大小为4Gb,客户端上的传输也是2Gb.两种配置都有足够的空间.

在Windows上,我能够使用以下解决方法之一传输130Mb文件:1)增加服务器上的接收缓冲区大小和2)在客户端中添加线程睡眠方法.这使我认为当所有字节都发送到套接字发送缓冲区而不是服务器时,客户端上的transferTo方法完成.这些字节是否使它成为服务器是不能保证的,这会给我的用例带来问题.

在Linux上,我能够通过单个transferTo调用传输的最大文件大小是2Gb,但至少客户端报告发送到服务器的正确字节数.

我的问题:客户确保将文件保证交付到服务器,跨平台的最佳方式是什么?在Windows上使用什么机制来模拟sendfile()?

这是代码:

客户端 - ZeroCopyClient.java:

import org.apache.commons.io.FileUtils;

import java.io.*;
import java.net.*;
import java.nio.channels.*;

public class ZeroCopyClient {

    public static void main(String[] args) throws IOException, InterruptedException {

        final File inputFile = new File(args[0]);

        FileInputStream fileInputStream = new FileInputStream(inputFile);
        FileChannel fileChannel = fileInputStream.getChannel();
        SocketAddress socketAddress = new InetSocketAddress("localhost", 8083);
        SocketChannel socketChannel = SocketChannel.open(); …
Run Code Online (Sandbox Code Playgroud)

java sockets nio zero-copy

5
推荐指数
1
解决办法
1762
查看次数