在Docker运行时公开Docker内部的端口

时间:2018-06-20 06:02:06

标签: docker docker-compose

我只想公开与芹菜花绑定的端口5555,以托管ip和端口。有人可以帮忙吗?

下面是dockerfile的一部分。

在该容器外部将80端口提供给全世界

博览会5555

定义环境变量

ENV NAME worker-app

创建路径

运行/etc/init.d/celeryd创建路径

清除symfony应用缓存

运行cd / srv / clickhq / && rm -rf var / cache / *

RUN chown -R灯塔:灯塔/ srv / clickhq /

清除php应用程序缓存

USER灯塔 运行cd / srv / clickhq / && ./clearcache.sh

在容器启动时启动celeryd,celerybeat和php-fpm服务

  

Blockquote

USER root
RUN chown -R lighthouse:lighthouse /var/run/celery/ && chown -R lighthouse:lighthouse /var/log/celery/
RUN chmod -R 755 /var/log/celery/ && chmod -R 755 /var/run/celery/
RUN chown -R lighthouse:lighthouse /srv/clickhq/
ENTRYPOINT sudo service celeryd start && sudo service celerybeat start && service php7.0-fpm start && service rsyslog start && /usr/bin/python /usr/local/bin/flower -A celery --broker=redis://password@192.168.51.4:6379/0 && bash
  

Blockquote

Im使用的Docker运行命令是

"sudo docker run -it --rm --name worker-app -d worker-app --privileged -p 192.168.51.3:5555:5555 --net="bridge"

1 个答案:

答案 0 :(得分:0)

问题是您实际上不是将参数-p 80:5555传递给docker run,而是传递给入口点。

在此命令sudo docker run -it --rm --name worker-app -d worker-app --privileged -p 192.168.51.3:5555:5555 --net="bridge"中,worker-app是映像名称,因此其后的所有内容(--privileged -p 192.168.51.3:5555:5555 --net="bridge")都是入口点的参数。

如果将图像名称更改为末尾,它将起作用:

sudo docker run -it --rm --name worker-app -d --privileged -p 80:5555 --net="bridge worker-app