我在构建服务器上运行了单元测试,并希望在出现故障时捕获日志结果以进行分析.我还没有找到一种方法将输出重定向docker-compose logs到文件,或找到日志文件本身实际存在的位置.
我想要相当于:
docker-compose logs > logs.txt
Run Code Online (Sandbox Code Playgroud)
编辑 - 澄清:
我的所有docker容器都会生成有用的日志,这些日志是手动docker-compose logs显示的.我想编写此过程的脚本,将这些相同的日志保存到我的构建服务器上的工件文件中.从本质上讲,docker-compose logs保存到文件的输出docker-compose logs永远不会退出.
泊坞窗,撰写2.1提供了很好的功能,以指定condition用depends_on.当前的docker-compose文档说明:
版本3不再支持depends_on的条件形式.
不幸的是,文档没有解释,为什么condition表单被删除,并且缺乏关于如何使用V3向上实现该行为的任何具体建议.
运行时出现以下错误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
基于 …
直到最近,当一个人正在docker-compose up为一堆容器做准备并且一个已启动的容器停止时,所有容器都被停止了.自https://github.com/docker/compose/issues/741以来不再是这种情况了,这对我们来说真的很烦人:我们使用docker-compose来运行selenium测试,这意味着启动应用服务器,启动selenium hub +节点,启动测试驱动程序,然后在测试驱动程序停止时退出.
有没有办法恢复旧的行为?
我正在使用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相同的功能吗?任何人都有一些经验或解决方法?
使用我的一个项目进入Docker错误:
invalid reference format: repository name must be lowercase
此通用消息的各种原因是什么?
经过一番努力后我已经弄明白了,所以我将回答我自己的问题,以便在此处记录,因为在进行网络搜索时解决方案不会立即出现,而且因为此错误消息没有描述Docker遇到的直接问题.
我想通过使用单个撰写文件为 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) 安装docker和docker-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 安装是这样的
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容器,每当我尝试停止容器时,我收到以下错误消息,
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
重现步骤:
docker build -t <project name> .或docker-compose up --build我试过的:
sudo service docker restart,然后可以删除容器.注意:此配置之前工作正常,但文件权限可能已更改,我看到此错误.我必须跑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) docker ×10
docker-compose ×10
linux ×2
apache-kafka ×1
docker-swarm ×1
dockerfile ×1
logging ×1
mongodb ×1
pyinstaller ×1
redhat ×1
selenium ×1