如何从一个 docker 容器向另一个链接容器发出 HTTP 请求?

How can I make a HTTP request from one docker container to another linked container?

我有一个 docker 容器,里面有一个 sinatra 应用程序,另一个容器有一个 node.js 应用程序。它们都通过图链接。在我的 sinatra 应用程序中,我正在向 node.js 应用程序发出 HTTP Post 请求。为此,我正在使用法拉第 gem。

我现在的问题是如何向另一个链接容器发出 HTTP 请求。

这是我的 fig.yml

db:
  image: mongo:2.6.7
  command: --smallfiles

api:
  build: ./api
  command: bundle exec rackup -p 3000
  volumes:
    - ./api:/code
  ports:
    - "3000:3000"
  links:
      - db
      - flickrcrawler

flickrcrawler:
  build: ./flickr-crawler
  ports:
    - "3100:3100"
  links:
    - db

这是我在 sinatra 应用程序中使用 farady 发出 HTTP 请求的方法:

def crawler_call(url, tags)
  tags.each do |t|
    conn = Faraday.new(url: url) do |faraday|
      faraday.request :url_encoded
      faraday.response :logger
      faraday.adapter Faraday.default_adapter
    end

    conn.post "#{t}"
  end
end

我将此方法作为 url 参数传递什么?

您可以在 fig.yml 中使用服务的名称,在这种情况下,我认为您称它为 flickrcrawler。所以像 http://flickrcrawler:3100.