Docker容器应用内端口转发

时间:2016-05-31 22:24:28

标签: python docker iptables portforwarding

我实际上试图为Docker进行端口转发,它向远程服务器上的mysql数据库发出请求。

我的目标是在容器中创建应用程序生产的副本,该容器可以访问基于远程MySQL服务器的现有MySQL服务器。

我创建了一个嵌入了所有要求的Dockerfile,如下所示:

FROM python:2.7-alpine

mkdir /working_env

RUN apk add --update mysql\
                mysql-client\
                python-dev\
                build-base \
                && rm -rf /var/cache/apk/*

# Requirements here
RUN pip install -r requirements.txt

WORKSPACE working_env

COPY init.sh .

# BIND TO 8053
RUN init.sh start

并使用映射到本地项目的卷运行此容器

docker run --name --rm project -v $(pwd):/working_env -d -p 8053:8053 project_docker

我的代码中调用如下:

conn = MySQLdb.connect(host=10.11.12.13, port=3000, passwd=foo, user=admin, db=default)

但我希望能够从我的容器内部进行调用,并将其从10.11.12.13:3000替换为10.11.12.13:3001

我找到了有关iptables的主题并尝试创建规则,但我的所有尝试都失败了以转发此端口。

sudo iptables -t nat -A PREROUTING -s 127.0.0.1 -p tcp --dport 3000 -j REDIRECT --to 3001

甚至可以进行这种修改,还是从docker内部改变端口的另一种方式?

0 个答案:

没有答案