使用可变端口创建容器

时间:2014-09-03 13:24:12

标签: couchdb port docker

我想为couchdb创建一个图像,以运行多个couchdb实例。由于需要澄清的原因,我希望容器中的couchdb实例监听非默认端口,这在图像定义时也是未知的,因为这将是一个容器参数

从主机我将运行容器:

sudo docker run -d -p 10000:30000 --name couchdb -e COUCHDB_PORT=30000 my/couchdb

这将使得couchdb正在侦听的容器(30000)中的端口可以通过主机中的端口10000访问。此端口应为每个容器参数。

从容器我这样做:

curl -X GET localhost:30000

我可以从主人那里做到:

curl -X GET localhost:10000

这两个请求都会遇到同一个couchdb服务器。

设置容器很简单(只需要处理环境变量来自动编辑couchdb配置文件),但现在我遇到了阻塞问题。在Dockerfile的末尾我有:

# the default couchdb port, which in my case is not
#     known at image creation time
EXPOSE 5984 

显然我需要公开我的服务在容器内运行的端口,但是在创建映像时我不知道。这是一个运行时参数,它随容器的不同而不同。

启动容器时如何公开端口?

0 个答案:

没有答案