标签: docker-compose

Docker,引用不同的容器。使用php命令调用mysqldump

我使用 Docker 在 Symfony3 项目上安装了一个数据库备份包 ( https://github.com/dizda/CloudBackupBundle ),但我无法让它工作,因为它找不到 PHP 或找不到 MySQL

当我php app/console --env=prod dizda:backup:start通过 exec、run 或通过 cron 运行时。我通过 PHP 映像收到 mysqldump 命令未找到错误,或从 Mysql/db 映像收到 PHP 未找到错误。

如何运行 php 命令,然后运行 ​​mysqldump 命令。

我的 docker-compose 文件如下:

version: '2'
services:
    web:
        # image: nginx:latest
        build: .
        restart: always
        ports:
            - "80:80"
        volumes:
            - .:/usr/share/nginx/html
        links:
            - php
            - db
            - node
        volumes_from:
            - php
        volumes:
            - ./logs/nginx/:/var/log/nginx
    php:
        # image: php:fpm
        restart: always
        build: ./docker_setup/php
        links:
            - redis
        expose:
            - …
Run Code Online (Sandbox Code Playgroud)

php mysql symfony docker docker-compose

0
推荐指数
1
解决办法
1327
查看次数

Mysql:正向主机查找失败:未知主机

我们在应用程序中使用 docker-compose,但不熟悉应用程序的这一部分,我们在运行后收到此错误docker-compose up --build

Mysql: forward host lookup failed: Unknown host
Run Code Online (Sandbox Code Playgroud)

mysql docker docker-compose

0
推荐指数
1
解决办法
5703
查看次数

swarm 中的副本数量不是从工作节点开始的 (1/4)

我在具有 1 个主节点和 3 个工作节点的 docker swarm 集群上启动了 Flask API 服务。我已经使用以下 docker compose 文件部署了任务,

version: '3'

services:
  xgboost-model-api:
image: xgboost-model-api
  ports:
    - "5000:5000"
deploy:
  mode: global
networks:
  - xgboost-net

networks:
   xgboost-net:
Run Code Online (Sandbox Code Playgroud)

我使用以下 docker swarm 命令部署了该任务,

docker stack deploy --compose-file docker-compose.yml xgboost-swarm
Run Code Online (Sandbox Code Playgroud)

但是,该任务仅在我的主节点上启动,而不在任何工作节点上启动。

$ docker service ls
ID            NAME                             MODE        REPLICAS  IMAGE
pgd8cktr4foz  viz                              replicated  1/1       
dockersamples/visualizer
twrpr4av4c7f  xgboost-swarm_xgboost-model-api  global      1/4       xgboost-model-api
xxrfn1w7eqw6  dockercloud-server-proxy         global      1/1       dockercloud/server-proxy 
Run Code Online (Sandbox Code Playgroud)

使用的 Dockerfile 在这里。任何关于为什么会发生这种行为的想法将不胜感激。

docker swarm docker-compose docker-swarm docker-swarm-mode

0
推荐指数
1
解决办法
2311
查看次数

ElasticSearch java.io.IOException:无法在 docker 中读取...

我试图在 docker 上用不同的版本重新组装一个用于 elasticsearch 的容器,但我仍然有这个错误。

 org.elasticsearch.bootstrap.StartupException: ElasticsearchException[java.io.IOException: failed to read [id:1, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/node-1.st]]; nested: IOException[failed to read [id:1, legacy:false, file:/usr/share/elasticsearch/data/nodes/0/_state/node-1.st]]; nested: IllegalArgumentException[[node_meta_data] unknown field [node_version], parser not found];
Run Code Online (Sandbox Code Playgroud)

这是我的 elasticsearch 配置 DockerFile:

ur_elasticsearch:
  container_name: "ur_elasticsearch"
  image: docker.elastic.co/elasticsearch/elasticsearch:5.3.1
  environment:
    - xpack.security.enabled=false
    - http.host=0.0.0.0
    - transport.host=127.0.0.1
  ports:
    - "9200:9200"
  volumes:
    - ./db-files/elasticsearch-data:/usr/share/elasticsearch/data
  healthcheck:
    test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
    interval: 60s
    timeout: 30s
    retries: 3
Run Code Online (Sandbox Code Playgroud)
  • 码头工人版本: 19.03.5, build 633a0ea838
  • docker-compose 版本: 1.24.0, build 0aa59064
  • Ubuntu 18.04.3 LTS

elasticsearch docker docker-compose

0
推荐指数
1
解决办法
1786
查看次数

如何使用 AWS 于 2020 年 1 月推出的 efsVolumeConfiguration 任务定义参数 Beta 在 ECS 集群上挂载 EFS

AWS 在此处的文档中提供了这一点

{
    "containerDefinitions": [
        {
            "name": "container-using-efs",
            "image": "amazonlinux:2",
            "entryPoint": [
                "sh",
                "-c"
            ],
        "command": [
            "ls -la /mount/efs"
        ],
            "mountPoints": [
                {
                    "sourceVolume": "myEfsVolume",
                    "containerPath": "/mount/efs",
                    "readOnly": true
                }
            ]
        }
    ],
    "volumes": [
        {
            "name": "myEfsVolume",
            "efsVolumeConfiguration": {
                "fileSystemId": "fs-1234",
                "rootDirectory": "/path/to/my/data"
            }
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我创建了一个 EFS 文件系统,分配给它的安全组允许入站 NFS,并且 EFS 使用该安全组以及我的 ECS 集群使用的子网和 VPC

问题

当我使用 AWS 管理控制台在我的任务定义中创建挂载点时,我必须输入containerPathelsemountPoints未反映在我的 JSON 中

1)我应该containerPathmountPoints什么之下?

2)我应该指定一个rootDirectoryunder …

amazon-web-services amazon-ecs docker dockerfile docker-compose

0
推荐指数
1
解决办法
2000
查看次数

如何使用 env_file 在 docker-compose 中隐藏 Mysql 密码

version: '3'

services:
  db:
    image: "mysql:5.7"
    volumes:
      - data-mysql:/var/lib/mysql

    ports:
      - '3306:3306'

    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}

volumes:
  data-mysql:
    driver: local
Run Code Online (Sandbox Code Playgroud)

谢谢曼尼

mysql docker docker-compose

0
推荐指数
1
解决办法
1787
查看次数

如何使用由 Docker 和 Compose 提供支持的弹性堆栈 (ELK) 在 logstash 中运行多管道

我正在使用 this_repo开始使用 Docker 运行 ELK。

我的问题是关于 docker-compose 文件中的 logstash 图像:

当我在本地运行时,我有 3 个文件

#general settings
logstash.yml
#pipeline setting
pipeline.yml
#a pipe line configuration
myconf.conf1
Run Code Online (Sandbox Code Playgroud)

当我想使用多管道时,我使用 pipeline.yml 文件来控制我正在运行的所有不同管道

# Example of my pipeline.yml
- pipeline.id: my-first-pipeline
  path.config: "/etc/logstash/my-first-pipeline.config"
  pipeline.workers: 2
- pipeline.id: super-swell-pipeline
  path.config: "/etc/logstash/super-swell-pipeline.config"
  queue.type: persisted
Run Code Online (Sandbox Code Playgroud)

在我用作指南的回购中,我只能找到 logstash.yml,我不明白如何添加管道。唯一运行的管道是默认的“main”,默认情况下只运行 logstash.conf 我尝试了不同的配置,所有字段

如何将 pipeline.yml 添加到 docker?或者使用这个 docker-compose 文件运行多管道的最佳实践是什么?

感谢任何帮助

docker-compose/logstash 形成 repo:

  logstash:
    build:
      context: logstash/
      args:
        ELK_VERSION: $ELK_VERSION
    volumes:
      - type: bind
        source: ./logstash/config/logstash.yml
        target: /usr/share/logstash/config/logstash.yml
        read_only: true
      - type: …
Run Code Online (Sandbox Code Playgroud)

logstash docker docker-compose elastic-stack

0
推荐指数
1
解决办法
2924
查看次数

MongoDb 身份验证在使用 docker 时访问数据库失败?

我一直在尝试为 mongodb 设置密码

我的 docker-compose 文件是

version: "3"
services:
    mongo:
        image: mongo
        ports:
            - "27016:27017"
        volumes:
            - ./data:/data/db
        environment:
            - MONGO_INITDB_ROOT_USERNAME=root
            - MONGO_INITDB_ROOT_PASSWORD=password
            - MONG_INITDB_DATABASE=example
Run Code Online (Sandbox Code Playgroud)

现在在运行 docker 容器后,当我进入容器后尝试时

mongo mongodb://root:password@localhost:27017
Run Code Online (Sandbox Code Playgroud)

连接成功,

MongoDB shell 版本 v4.2.7 连接到: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb 隐式会话: session { "id" : UUID("71ec853d-3a05-4367-aa9f-d0a69217fb7d" version) : 4.2.7 服务器有启动警告: 2020-06-16T17:43:51.837+0000 I STORAGE [initandlisten] 2020-06-16T17:43:51.837+0000 I STORAGE [initandlisten] 是使用 XFSN 文件系统的 **强烈推荐使用 WiredTiger 存储引擎 2020-06-16T17:43:51.837+0000 I STORAGE [initandlisten] ** 见

但是当我尝试

mongo mongodb://root:password@localhost:27017/example
Run Code Online (Sandbox Code Playgroud)

认证失败。MongoDB shell 版本 v4.2.7 连接到:mongodb://localhost:27017/example?compressors=disabled&gssapiServiceName=mongodb 2020-06-16T17:51:08.226+0000 E QUERY …

mongodb docker docker-compose

0
推荐指数
1
解决办法
1871
查看次数

两个docker容器无法通信

我有两个码头集装箱。一个容器是数据库,另一个是 Web 应用程序。Web 应用程序通过此链接 http://localhost:7200 调用数据库。但是,Web 应用程序 docker 容器无法到达数据库容器。

我试过这个 docker-compose.yml,但不起作用:

version: '3'
services:
  web:
    # will build ./docker/web/Dockerfile
    build: 
       context: .
       dockerfile: ./docker/web/Dockerfile
    links:
      - graph-db
    depends_on:
     - graph-db
    ports:
     - "8080:8080"
    environment:
      - WAIT_HOSTS=graph-db:7200
    networks: 
      - backend

  graph-db:
    # will build ./docker/graph-db/Dockerfile
    build:
        ./docker/graph-db
    hostname: graph-db
    ports:
      - "7200:7200"

networks:
  backend:
    driver: "bridge"
Run Code Online (Sandbox Code Playgroud)

所以我有两个容器: Web 应用程序:http://localhost:8080/reasoner,这个容器调用位于不同容器中的 http://localhost:7200 中的数据库。但是,Web 容器无法访问数据库容器。

解决方案

version: '3'
services:
  web:
    # will build ./docker/web/Dockerfile
    build: 
       context: .
       dockerfile: ./docker/web/Dockerfile
    depends_on:
     - graph-db
    ports:
     - …
Run Code Online (Sandbox Code Playgroud)

docker microservices dockerfile docker-compose

0
推荐指数
1
解决办法
1227
查看次数

为什么根据我是`docker run ...`还是`docker-compose run ...`,容器内容会有所不同?

我遇到了容器内容的差异,这取决于我是通过docker run -i -t <container> bash还是打开 bash shell docker-compose run <container> bash,但我不知道/不明白这是怎么可能的。

为了帮助解释,请从我的终端查看屏幕截图。在这两种情况下,我都在运行根据我的代码blaze构建的名为的图像Dockerfile。一个构建过程中的步骤是创建一个名为virutalenv venv,但是当我打开通过bash shell的docker-compose这个virtualenv中似乎并没有我跑的时候不像存在docker run ...

我对使用 Docker 设置自己的构建比较陌生,但是如果它们都引用相同的图像,那么lsbash shell 中的输出应该是相同的吗?我将不胜感激任何对资源的帮助或指导,以解释这里究竟出了什么问题......

另外一点,运行 docker images 表明两个命令必须使用相同的图像......

提前致谢!

这是我的Dockerfile

FROM blaze-base-image:latest

# add an URL that PIP automatically searches (e.g., Azure Artifact Store URL)
ARG INDEX_URL
ENV PIP_EXTRA_INDEX_URL=$INDEX_URL

# Copy source code to docker image
RUN mkdir /opt/app
COPY . /opt/app
RUN ls …
Run Code Online (Sandbox Code Playgroud)

python bash virtualenv docker docker-compose

0
推荐指数
1
解决办法
27
查看次数