相关疑难解决方法(0)

使用容器名称从主机访问docker容器

我正在开发一个服务,并使用docker compose来旋转postgres,redis,elasticsearch等服务.我有一个基于RubyOnRails的Web应用程序,可以从所有这些服务中进行写入和读取.

这是我的 docker-compose.yml

version: '2'

services:
  redis:
    image: redis:2.8
    networks:
      - frontapp

  elasticsearch:
    image: elasticsearch:2.2
    networks:
      - frontapp

  postgres:  
    image: postgres:9.5
    environment:
      POSTGRES_USER: elephant
      POSTGRES_PASSWORD: smarty_pants
      POSTGRES_DB: elephant
    volumes:
      - /var/lib/postgresql/data
    networks:
      - frontapp

networks:
  frontapp:
    driver: bridge
Run Code Online (Sandbox Code Playgroud)

我可以ping这个网络中的容器

$ docker-compose run redis /bin/bash
root@777501e06c03:/data# ping postgres
PING postgres (172.20.0.2): 56 data bytes
64 bytes from 172.20.0.2: icmp_seq=0 ttl=64 time=0.346 ms
64 bytes from 172.20.0.2: icmp_seq=1 ttl=64 time=0.047 ms
...
Run Code Online (Sandbox Code Playgroud)

到现在为止还挺好.现在我想在我的主机上的rails应用程序上运行ruby但是能够使用url访问postgres实例,就像postgresql://username:password@postgres/database目前那样是不可能的

$ ping postgres
ping: unknown host …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose

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

docker-compose 在 mongoDB 中创建复制

我正在设置一个 docker 容器来使用 docker compose 初始化 Mongo DB 副本集。我无法完成这项工作。我创建了 docker-compose 来调用三个 mongo 实例,但我遇到了解析器问题。下面是我的Docker-Compose文件。

version: '3'
services:
 mongo-vauto-1:    
    image: "mongo-start"
    build: ./mongo-vAUTO-1
    ports:
      - "30000:27017"
    volumes:
      - ./mongo-vAUTO-1/data:/data/db
    depends_on:
      - "mongo-vauto-2"
      - "mongo-vauto-3"

 mongo-vauto-2:
    image: "mongo"
    command: --replSet vAUTO --smallfiles --oplogSize 128
    ports:
      - "40000:27017"
    volumes:
      - ./mongo-vAUTO-2/data:/data/db

 mongo-vauto-3:
    image: "mongo"
    command: --replSet vAUTO --smallfiles --oplogSize 128
    ports:
      - "50000:27017"
    volumes:
      - ./mongo-vAUTO-3/data:/data/db

 mongo-setup-vauto:
    image: "mongo-setup-vauto"
    build: ./setup
    depends_on:
      - "mongo-vauto-1"
Run Code Online (Sandbox Code Playgroud)

它调用./setup 文件夹中的Dockerfile。下面是我设置的 Dockerfile

FROM mongo

# …
Run Code Online (Sandbox Code Playgroud)

docker dockerfile docker-compose

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

标签 统计

docker ×2

docker-compose ×2

dockerfile ×1