标签: docker-compose

从本地机器上的 Mongo Compass 连接到 Mongo Docker 容器?

我有以下docker compose文件,用于启动mongo按预期工作的docker 容器。

但是,我似乎无法从compass本地计算机连接到容器。

docker inspect在我的 mongo 容器上执行并得到它IP并尝试使用指南针连接,但它没有用 - 连接超时。

它是我的 docker 网络的 IP 还是我需要的 mongo 容器的 IP?

码头工人撰写文件:

version: "3"
services:
  pokerStats:
    image: pokerStats
    container_name: pokerStats
    ports:
      - 8080:8080
    depends_on: 
      - db
  db:
    image: mongo
    container_name: mongo
    volumes:
      - ./database:/data
    ports:
      - "27017:27017"
Run Code Online (Sandbox Code Playgroud)

ip mongodb docker docker-compose mongodb-compass

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

Docker 堆栈部署:来自守护进程的错误响应:rpc 错误:代码 = InvalidArgument desc = ContainerSpec:必须提供图像参考

我正在尝试使用 docker 堆栈部署应用程序。建立与泊坞窗,撰写(已运行测试后完全确定),我创建了一个群,加入它,并试图逃跑

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

出现以下错误:

failed to create service default_sharkcop-api: Error response from daemon: rpc error: code = InvalidArgument desc = ContainerSpec: image reference must be provided
Run Code Online (Sandbox Code Playgroud)

这是我的 docker-compose.yml

version: "3"
services:
  # Define the api web application
  sharkcop-api:
    # Build the Dockerfile that is in the web directory
    build: 
      context: ./sharkcop-api
      dockerfile: Dockerfile
    # Always restart the container regardless of the exit status; try and restart the container indefinitely
    restart: always

    # …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose docker-swarm

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

Docker-compose 和 mongoDB:无法在任何兼容版本下启动 WiredTiger?

我有以下docker-compose文件:

version: "3"

services:

    #
    # APIs
    #----------------------------------------------
       pokerstats:
        image: pokerstats
        container_name: pokerstats
        ports:
          - 8080:8080
        depends_on: 
          - db

    #
    # Utilities
    #----------------------------------------------
      db:
        image: mongo
        container_name: mongo
        volumes:
          - ./data/db:/data/db
        ports:
          - "27018:27017"
        environment:
          MONGO_INITDB_ROOT_USERNAME: admin
          MONGO_INITDB_ROOT_PASSWORD: admin
          MONGO_INITDB_DATABASE: pokerStats
Run Code Online (Sandbox Code Playgroud)

在我添加volumes. 但是当我运行时不是:docker-compose up -dmongo 容器立即停止,在日志中我看到错误:

2020-04-10T19:17:17.313+0000 I  STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=1457M,cache_overflow=(file_max=0M),session_max=33000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000,close_scan_interval=10,close_handle_minimum=250),statistics_log=(wait=0),verbose=[recovery_progress,checkpoint_progress],
2020-04-10T19:17:17.772+0000 E  STORAGE  [initandlisten] WiredTiger error (1) [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, 667: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted Raw: [1586546237:772524][29:0x7fe9f284fb00], connection: __posix_open_file, …
Run Code Online (Sandbox Code Playgroud)

mongodb docker wiredtiger docker-compose docker-volume

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

Elasticsearch多节点集群一个节点总是用docker compose失败

我正在尝试按照此处的官方文档docker compose 中设置一个基本的 dev 3 节点 7.7.0 ES 集群, 但无法让所有 3 个节点同时运行。在运行docker-compose up至少一个容器后立即或不久之后退出,如下所示:

Starting es01 ... done
Starting es03 ... done
Starting es02 ... done
Attaching to es03, es02, es01
es01 exited with code 137
Run Code Online (Sandbox Code Playgroud)

如果我尝试通过运行将其恢复docker-compose start es01(或者无论哪个碰巧退出,有时是随机的)它会导致这些错误,直到我杀死所有容器才会停止:

es03    | {"type": "server", "timestamp": "2020-05-25T15:52:37,214Z", "level": "WARN", "component": "o.e.c.c.ClusterFormationFailureHelper", "cluster.name": "es-docker-cluster", "node.name": "es03", "message": "master not discovered or elected yet, an election requires 2 nodes with ids [9RNLWSMbTmetFFh3Tm1q0g, 3CbHK5iBQAqt7poPRsMmaw], have discovered [{es03}{3CbHK5iBQAqt7poPRsMmaw}{AGMLafOfRyyMVeEuFuaTOA}{172.25.0.2}{172.25.0.2:9300}{dilmrt}{ml.machine_memory=2085416960, xpack.installed=true, …
Run Code Online (Sandbox Code Playgroud)

elasticsearch docker docker-compose

1
推荐指数
2
解决办法
1874
查看次数

如何修复以代码 1 退出的 Docker-compose up 错误

我是 Docker 的初学者。我有一个简单的 DockerFile 和 Docker-compose.yml 文件当我使用 docker-compose up 时,它会显示一个错误,该错误以代码 1 退出,我不知道如何修复它。我的 DockerFile:

FROM openjdk:8
ENV APP_HOME /home
RUN mkdir -p $APP_HOME
ADD target/spring-docker.jar $APP_HOME/spring-docker.jar
WORKDIR $APP_HOME
EXPOSE 8080
CMD ["java","-Dspring.data.mongodb.uri=mongodb://db:27017/","-jar","/home/spring-docker.jar"]
Run Code Online (Sandbox Code Playgroud)

Docker-撰写:

version: '3.1'
services:
    spring-docker:
        build: .
        restart: always
        ports: 
            - "8080:8080"
        depends_on:
           - db
    db:
        image: mongo
        volumes:
            - ./data:/data/db
        ports:
            - "27017:27017"
        restart: always
Run Code Online (Sandbox Code Playgroud)

SpringBoot 是基于应用程序及其 mongodb 数据库。

docker dockerfile docker-compose

1
推荐指数
2
解决办法
6449
查看次数

Docker 卷和 kubernetes 卷

我是 kubernetes/docker 的新手,想知道 kubernetes 中的 docker 卷配置等价物是什么。在 docker-compose 文件中,您可以像这样创建卷:

volumes:
   - wordpress/file-abc (1)
   - wordpress:/var/www/html (2)
Run Code Online (Sandbox Code Playgroud)

(1)wordpress/file-abc如果 /var/www/html 发生变化,告诉 docker 保持内容不变。(2) 允许更改除wordpress/file-abc.

在 kubernetes 中创建持久卷时,kubernetes 与 (1) 的等价物是什么?Kubernetes 中的 volumeMounts 是否等同于 (2)?

wordpress docker kubernetes docker-compose

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

无法从 env_file 中声明的文件中读取环境变量

在我的 docker-compose.yml 中,我定义了两个服务,app以及db.

version: "3.7"

services:
  app:
    image: my_app
    container_name: my-app
    ports:
      - ${MY_PORT}:${MY_PORT}
    env_file:
      - ./app.env
    ...
    depends_on:
      - db
    environment:
      - DATABASE_URL=${DB_URL}
  db:
    image: my_db
    container_name: my-db
    env_file:
      - ./db.env
    ports:
      - ${DB_PORT}:${DB_PORT}
Run Code Online (Sandbox Code Playgroud)

正如你在上面看到的,我已经定义了两个 env 文件,app.envdb.env在和服务的env_file选项中。appdb

应用程序.env:

MY_PORT=8081
Run Code Online (Sandbox Code Playgroud)

db.env:

DB_PORT=4040
DB_URL=postgres://myapp:app@db:4040/myapp
Run Code Online (Sandbox Code Playgroud)

我想检查我的 docker-compose 是否可以成功读取环境变量。所以,我运行命令docker-compose config。但是输出是

$ docker-compose config
WARNING: The MY_PORT variable is not set. Defaulting to a blank string.
WARNING: The DB_URL variable …
Run Code Online (Sandbox Code Playgroud)

environment-variables docker docker-compose

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

无法从 EC2 中运行的 docker 容器连接到 elasticache redis

作为我的 CI 过程的一部分,我正在创建一个 docker-machine EC2 实例并通过 docker-compose 在其中运行 2 个 docker 容器。服务器容器测试脚本尝试连接到与 EC2 位于同一 VPC 中的 AWS elasticache redis 实例。运行测试脚本时,出现以下错误:

1) Storage
       check cache connection
         should return seeded value in redis:
     Error: Timeout of 2000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves. (/usr/src/app/test/scripts/test.js)
      at listOnTimeout (internal/timers.js:549:17)
      at processTimers (internal/timers.js:492:7)
Run Code Online (Sandbox Code Playgroud)

更新:我可以通过 EC2 本身的 redis-cli 进行连接:

redis-cli -c -h ***.cache.amazonaws.com -p 6379 ping
> PONG
Run Code Online (Sandbox Code Playgroud)

看起来我无法连接到我的 redis 实例,因为我的 docker 容器使用的 IP …

amazon-web-services redis amazon-elasticache docker docker-compose

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

如何更改使用 docker 安装的火箭聊天服务器的默认端口?

我已经使用 docker 在我的实例上安装 Rocket.Chat。默认情况下,它在端口号 3000 上运行,但我想在另一个端口上运行它。

我的 docker-compose.yml 文件如下所示:https : //github.com/RocketChat/Rocket.Chat/blob/develop/docker-compose.yml

我怎样才能在不同的端口上运行它?

docker docker-compose rocket.chat

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

在创建其他服务之前等待 docker compose 中的 mysql 服务准备就绪

我试图用等待换它在我docker-compose.yaml等待的MySQL是创建依赖于它的服务前准备好。这是我的docker-compose.yaml

version: '3.5'

services:
  mysql:
    image: mysql:5.6
    ports:
      - "3307:3306"
    networks:
      - integration-tests
    environment:
      - MYSQL_DATABASE=mydb
      - MYSQL_USER=root
      - MYSQL_ROOT_PASSWORD=mypassword
    entrypoint: ./wait-for-it.sh mysql:3306
networks:
  integration-tests:
    name: integration-tests
Run Code Online (Sandbox Code Playgroud)

尝试使用 docker-compose 运行此错误时出现此错误:

启动集成测试_mysql_1 ...错误

错误:对于集成测试_mysql_1 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for- it.sh:没有这样的文件或目录”:未知

错误:对于 mysql 无法启动服务 mysql:OCI 运行时创建失败:container_linux.go:348:启动容器进程导致“exec:\”./wait-for-it.sh\”:stat ./wait-for-it。 sh:没有这样的文件或目录”:未知错误:启动项目时遇到错误。

wait-for-it.sh脚本与我的docker-compose.yaml文件处于同一级别,所以我不明白为什么找不到它。

docker docker-compose

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