Cam*_*lva 7 mongodb docker docker-compose
我正在尝试连接在docker上运行的两个mongodb容器docker-compose.一个容器将一些数据播种到另一个容器中mongoimport.
但是,我在运行时遇到以下错误 mongoimport
Failed: error connecting to db server: no reachable servers
其实我可以达到mongodb从容器mongo-seed,因为我会追加一ping -c 3 mongodb到CMD和容器可以成功解析该主机名.
在我正在使用的文件下面:
泊坞窗,compose.yml
version: '2'
services:
  mongodb:
    image: mongo:3.2
    ports:
      - "27017:27017"
  mongo-seed:
    build: ./mongo-seed
蒙戈种子/ Dockerfile
FROM mongo:3.2
COPY init.json /init.json
CMD ping -c 3 mongodb && mongoimport --host mongodb --db test --collection users \
   --type json --file /init.json --jsonArray
蒙戈种子/ init.json
[
  {
    "name": "Joe Smith",
    "email": "jsmith@gmail.com",
    "age": 40,
    "admin": false
  },
  {
    "name": "Jen Ford",
    "email": "jford@gmail.com",
    "age": 45,
    "admin": true
  }
]
这个输出docker-compose up:
mongo-seed_1  | PING mongodb (172.18.0.2): 48 data bytes
mongo-seed_1  | 56 bytes from 172.18.0.2: icmp_seq=0 ttl=64 time=0.116 ms
mongo-seed_1  | 56 bytes from 172.18.0.2: icmp_seq=1 ttl=64 time=0.141 ms
mongo-seed_1  | 56 bytes from 172.18.0.2: icmp_seq=2 ttl=64 time=0.114 ms
mongo-seed_1  | --- mongodb ping statistics ---
mongo-seed_1  | 3 packets transmitted, 3 packets received, 0% packet loss
mongo-seed_1  | round-trip min/avg/max/stddev = 0.114/0.124/0.141/0.000 ms
mongo-seed_1  | 2016-08-09T20:34:15.728+0000    [........................] smtt.devices 0.0 B/25.5 MB (0.0%)
mongo-seed_1  | 2016-08-09T20:34:17.992+0000    [........................] smtt.devices 0.0 B/25.5 MB (0.0%)
mongo-seed_1  | 2016-08-09T20:34:17.992+0000    Failed: error connecting to db server: no reachable servers
mongo-seed_1  | 2016-08-09T20:34:17.992+0000    imported 0 documents
mongo_mongo-seed_1 exited with code 1
任何的想法?我错过了什么?
Cam*_*lva 11
我终于可以设法连接两个容器了.我的发现是为了记录目的.
docker-compose版本2创建一个bridge网络并将所有容器添加到它.mongod不知道这个网络,因此不绑定到该IP.默认情况下,仅绑定到127.0.0.1mongoimport 无法使用容器名称建立连接,即使它应该被转换为容器ip.network--bind_ip标志指向那个静态ipmongoimport泊坞窗,compose.yml
version: '2'
services:
  mongodb:
    image: mongo:3.2
    ports:
      - "27017:27017"
    networks:
      mongo_net:
        ipv4_address: 172.16.0.1
    command: mongod --bind_ip 127.0.0.1,172.16.0.1
  mongo-seed:
    build: ./mongo-seed
    networks:
      mongo_net:
    depends_on:
      - mongodb
networks:
  mongo_net:
    driver: bridge
    ipam:
      config:
      - subnet: 172.16.0.0/24
        gateway: 172.16.0.254
蒙戈种子/ Dockerfile
FROM mongo:3.2
COPY init.json /init.json
CMD mongoimport --host 172.16.0.1 --db test --collection users \
   --type json --file /init.json --jsonArray
| 归档时间: | 
 | 
| 查看次数: | 8118 次 | 
| 最近记录: |