docker容器之间的访问

    一个简单的python web应用,需要访问redis,web应用与redis应用在不同的容器中,下面实现两个容器的访问。

1、创建app.py 与 Dockerfile

app.py

from flask import Flask
from redis import Redis
import os
import socket

app = Flask(__name__)
redis = Redis(host=os.environ.get('REDIS_HOST', '127.0.0.1'), port=6379)


@app.route('/')
def hello():
    redis.incr('hits')
    return 'kick %s times.\n' % redis.get('hits')


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)

 

Dockerfile

FROM python:2.7
LABEL maintaner="sldsldzzz@163.com"
COPY . /app
WORKDIR /app
RUN pip install flask redis
EXPOSE 5000
CMD [ "python", "app.py" ]

2、启动redis

执行:docker run -d --name redis redis

通过docker ps查看容器是否启动成功

3、创建python应用镜像

执行:docker build -t flask-redis-demo .

启动flask应用:docker run -d --link redis --name flask-redis -e REDIS_HOST=redis flask-redis-demo

查看容器是否启动成功

4、访问redis

进入flask容器:docker exec -it flask-redis /bin/bash

虽然在容器内可以访问redis,但是在本地却无法访问,这时要将python应用的容器端口做一个映射。

5、端口映射

停止web应用:docker stop flask-redis

删除flask-redis:docker rm flask-redis

重新执行命令,增加-p参数:docker run -d -p 5000:5000 --link redis --name flask-redis -e REDIS_HOST=redis flask-redis-demo

这时就可在本地访问了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值