小编fmd*_*lle的帖子

将 docker 卷移动到不同的分区

我有一台服务器,在其中运行一些带有卷的容器。我的所有卷都在,/var/lib/docker/volumes/因为 docker 正在管理它。我使用 docker-compose 来启动我的容器。

最近,我试图停止我的一个容器,但这是不可能的:

$ docker-compose down
[17849] INTERNAL ERROR: cannot create temporary directory!
Run Code Online (Sandbox Code Playgroud)

因此,我检查了数据如何安装在服务器上:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            7,8G     0  7,8G   0% /dev
tmpfs           1,6G  1,9M  1,6G   1% /run
/dev/md3         20G   19G     0 100% /
tmpfs           7,9G     0  7,9G   0% /dev/shm
tmpfs           5,0M     0  5,0M   0% /run/lock
tmpfs           7,9G     0  7,9G   0% /sys/fs/cgroup
/dev/md2        487M  147M  311M  33% /boot
/dev/md4        1,8T  1,7G  1,7T   1% /home
tmpfs           1,6G     0 …
Run Code Online (Sandbox Code Playgroud)

ubuntu system docker partition docker-compose

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

将 docker bind-mount 移动到卷

实际上,我像这样运行我的容器,例如:

docker run -v /nexus-data:/nexus-data sonatype/nexus3
              ^
Run Code Online (Sandbox Code Playgroud)

阅读文档后,我发现完全由 docker 管理的卷。出于某些原因,我想改变运行我的容器的方式,做这样的事情:

docker run -v nexus-data:/nexus-data sonatype/nexus3
              ^
Run Code Online (Sandbox Code Playgroud)

我想将我现有的绑定安装转移到卷。

但我不想将数据丢失到/nexus-data文件夹中,是否有可能将此文件夹传输到新卷,而无需重新启动所有内容?因为我也有 Jenkins 和 Sonar 容器,所以我只想改变拥有持久数据的方式。这是一个正确的方法来做到这一点?

volumes docker

6
推荐指数
1
解决办法
3704
查看次数

ElasticSearch Java高级REST客户端-每个用户单例还是一个实例?

我计划在我们的应用程序中使用Java REST客户端。我们的是在Tomcat上运行的Java RESTful应用程序。我们每秒将有很多来自不同用户的对ElasticSearch的搜索请求。最佳做法是-要创建Singleton并在整个应用程序中使用它,或为每个用户创建一个实例?

如果采用Singleton,则可以处理多少个并发请求?这种方法是否可以扩展?

感谢和问候,拉杰什

elasticsearch elasticsearch-5

4
推荐指数
1
解决办法
2944
查看次数

带有布尔环境变量的 Jenkins 声明式管道表达式

我正在使用 Jenkins 声明式管道,我想根据环境变量执行一个条件步骤,该变量是根据文件的存在设置的。

所以我只想做这样的事情:如果 Dockerfile 存在,则执行下一阶段,否则不执行。

为了执行此操作,我尝试了:

pipeline {
    // ...
    stage {
        stage('Docker') {
            environment {
                IS_DOCKERFILE = fileExists 'Dockerfile'
            }
            when {
                environment name: 'IS_DOCKERFILE', value: true
            }
            stage('Build') {
                // ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

或者 :

pipeline {
    // ...
    stage {
        stage('Docker') {
            environment {
                IS_DOCKERFILE = fileExists 'Dockerfile'
            }
            when {
                expression {
                    env.IS_DOCKERFILE == true
                }
            }
            stage('Build') {
                // ...
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,Dockerfile 都存在并且位于工作区中。我也尝试过使用字符串 ( "true"),但每次,管道都会继续而不执行阶段“构建”。

有什么建议 ?

jenkins jenkins-groovy jenkins-pipeline

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

带有 bool 查询的 Elasticsearch Java Jest 客户端查询构建器范围

我需要使用 Jest 客户端进行 Elasticsearch 查询,以将一些术语和日期与范围查询相匹配。因此,我需要使用 Jest 执行带有范围查询的 bool 查询,QueryBuilder以获得这样的请求:

{
"query": {
    "range": {
        "gte": "begindate",
        "lte": "enddate"
    },
    "bool": {
        "must": [
            {
                "terms": {
                    "field1": [
                        55,
                        99
                    ]
                }
            },
            {
                "terms": {
                    "field2": [
                        450
                    ]
                }
            },
            {
                "terms": {
                    "field3": [
                        11
                    ]
                }
            }
        ]
    }
}
Run Code Online (Sandbox Code Playgroud)

}

为此,我queryBuilder是这样使用的:

Builder search = null;
Search buildedSearch = null;
SearchResult result = null;

SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder qb = …
Run Code Online (Sandbox Code Playgroud)

java range query-builder elasticsearch elasticsearch-jest

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