标签: docker-compose

将docker-compose日志保存到文件中

我在构建服务器上运行了单元测试,并希望在出现故障时捕获日志结果以进行分析.我还没有找到一种方法将输出重定向docker-compose logs到文件,或找到日志文件本身实际存在的位置.

我想要相当于:

docker-compose logs > logs.txt
Run Code Online (Sandbox Code Playgroud)

编辑 - 澄清:

我的所有docker容器都会生成有用的日志,这些日志是手动docker-compose logs显示的.我想编写此过程的脚本,将这些相同的日志保存到我的构建服务器上的工件文件中.从本质上讲,docker-compose logs保存到文件的输出docker-compose logs永远不会退出.

logging docker docker-compose

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

在docker-compose版本3中,depends_on的条件形式的替代方法是什么?

泊坞窗,撰写2.1提供了很好的功能,以指定conditiondepends_on.当前的docker-compose文档说明:

版本3不再支持depends_on的条件形式.

不幸的是,文档没有解释,为什么condition表单被删除,并且缺乏关于如何使用V3向上实现该行为的任何具体建议.

docker docker-compose

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

Docker Compose Mac 错误:无法启动服务 zoo1:安装被拒绝:

运行时出现以下错误docker-compose up -d

% docker-compose up -d

Creating network "kafka-test_default" with the default driver
Creating kafka-test_zoo1_1 ... error

ERROR: for kafka-test_zoo1_1  Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist

ERROR: for zoo1  Cannot start service zoo1: Mounts denied: approving /Users/test/kafka-test/zk-single-kafka-single/zoo1/datalog: file does not exist
ERROR: Encountered errors while bringing up the project.
Run Code Online (Sandbox Code Playgroud)

在我将 Docker for Mac 多次更新为Docker version 20.10.0, build 7287ab3. Macbook 运行的是 Big Sur 11.0.1。

注意:如果 Docker 降级到 19.03.13,它会起作用。但这不是一个好的解决方案。


docker-compose.yml

基于 …

apache-kafka docker docker-compose docker-for-mac

38
推荐指数
2
解决办法
3986
查看次数

当一个容器停靠时使用docker-compose时如何停止所有容器?

直到最近,当一个人正在docker-compose up为一堆容器做准备并且一个已启动的容器停止时,所有容器都被停止了.自https://github.com/docker/compose/issues/741以来不再是这种情况了,这对我们来说真的很烦人:我们使用docker-compose来运行selenium测试,这意味着启动应用服务器,启动selenium hub +节点,启动测试驱动程序,然后在测试驱动程序停止时退出.

有没有办法恢复旧的行为?

selenium docker docker-compose

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

如何在启动时为MongoDB容器创建数据库?

我正在使用Docker,我有一个PHP,MySQL,Apache和Redis的堆栈.我现在需要添加MongoDB所以我正在检查Dockerfile以获取最新版本以及来自MongoDB Dockerhub 的docker-entrypoint.sh文件,但我找不到设置默认数据库,管理员用户/密码以及可能的身份验证的方法来自文件的容器的方法.docker-compose.yml

在MySQL中,您可以设置一些ENV变量,例如:

db:
    image: mysql:5.7
    env_file: .env
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
Run Code Online (Sandbox Code Playgroud)

这将设置数据库和用户/密码作为root密码.

有什么办法可以实现与MongoDB相同的功能吗?任何人都有一些经验或解决方法?

mongodb docker docker-compose

37
推荐指数
10
解决办法
5万
查看次数

Docker错误:参考格式无效:存储库名称必须小写

使用我的一个项目进入Docker错误:

invalid reference format: repository name must be lowercase

此通用消息的各种原因是什么?

经过一番努力后我已经弄明白了,所以我将回答我自己的问题,以便在此处记录,因为在进行网络搜索时解决方案不会立即出现,而且因为此错误消息没有描述Docker遇到的直接问题.

docker docker-compose

37
推荐指数
7
解决办法
6万
查看次数

错误:在服务“dsearch”中使用了命名卷“xplore:/root/xPlore/rtdata:rw”,但未在卷部分找到声明

我想通过使用单个撰写文件为 tomcat、documentum content server 和 documentum xplore 创建容器。由于 docker-compose.yml 文件中提到的卷,我面临着问题。能够通过单独执行撰写文件来启动服务。问题是当我尝试将撰写文件合并在一起时。想知道如何使用 docker compose 运行带有卷的多个容器。

以下是单个撰写文件:

  version: '2'
  networks:
          default:
            external:
              name: dctmcs_default
  services:
    dsearch:
      image: xplore_ubuntu:1.6.0070.0058
      container_name: dsearch
      hostname: dsearch
      ports:
        - "9300:9300"
      volumes:
        - xplore:/root/xPlore/rtdata
    indexagent:
    image: indexagent_ubuntu:1.6.0070.0058
    container_name: indexagent_1
    hostname: indexagent_1
    ports:
      - "9200:9200"
    environment:
      - primary_addr=dsearch
      - docbase_name=centdb
      - docbase_user=dmadmin
      - docbase_password=password
      - broker_host=contentserver
      - broker_port=1689
    depends_on:
      - dsearch
    volumes_from:
      - dsearch
volumes:
   xplore: {}
 tomcat_8:
   image: tomcat_8.0:ccms
   container_name: appserver
   hostname: appserver
   ports:
     - "9090:8080"
 contentserver:
   image: contentserver_ubuntu:7.3.0000.0214 …
Run Code Online (Sandbox Code Playgroud)

linux docker docker-compose docker-volume documentum7.3

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

docker compose:加载共享库时出错:libz.so.1:无法从共享对象映射段:不允许操作

安装dockerdocker-compose后:

NAME="Red Hat Enterprise Linux Server"
VERSION="7.6 (Maipo)"
Run Code Online (Sandbox Code Playgroud)

执行时:

sudo docker-compose -version
Run Code Online (Sandbox Code Playgroud)

它返回:

Error while loading shared libraries: libz.so.1: failed to map segment from shared object: Operation not permitted

它应该返回:

docker-compose version 1.25.0-rc2, build 661ac20e
Run Code Online (Sandbox Code Playgroud)

从 docker-compose 安装是这样的

linux redhat pyinstaller docker docker-compose

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

如何将ARG值传递给ENTRYPOINT?

Docker 1.9允许将参数传递给dockerfile.请参阅链接:https://docs.docker.com/engine/reference/builder/#arg

我怎样才能在ENTRYPOINT指令中传递相同的句子?

我的dockerfile有

ARG $ Version = 3.1
ENTRYPOINT /tmp/folder-$Version/sample.sh start

使用上面的dockerfile创建容器时出错.请建议在ENTRYPOINT指令中指定参数的正确方法是什么?

docker dockerfile docker-registry docker-compose

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

Docker容器无法停止或删除 - 权限被拒绝错误

问题:无法停止docker容器,每当我尝试停止容器时,我收到以下错误消息,

ERROR: for yattyadocker_web_1  cannot stop container: 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: Cannot kill container 1f04148910c5bac38983e6beb3f6da4c8be3f46ceeccdc8d7de0da9d2d76edd8: rpc error: code = PermissionDenied desc = permission denied
Run Code Online (Sandbox Code Playgroud)

操作系统版本/版本: Ubuntu 16.04 | Docker版本17.09.0-ce,构建afdb6d4 | Docker Compose版本1.17.1,build 6d101fb

重现步骤:

  • 使用Dockerfile和docker-compose.yml创建了一个rails项目.docker-compose.yml是版本3.
  • 图像与成功构建要么docker build -t <project name> .docker-compose up --build
  • 容器启动并成功运行.
  • 尝试使用docker-compose停止docker compose.

我试过的:

  • 我必须跑sudo service docker restart,然后可以删除容器.
  • 卸载docker,删除docker目录,然后重新安装所有内容.仍面临同样的问题.

注意:此配置之前工作正常,但文件权限可能已更改,我看到此错误.我必须跑sudo service docker restart,然后可以删除容器.但这非常不方便,我不知道如何解决这个问题.

参考文件:

# docker-compose.yml
version: '3'
volumes:
  db-data:
    driver: local
  redis-data:
    driver: local  
services:
  db:
    image: postgres:9.4.1
    volumes: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails docker docker-compose docker-swarm

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