乙個簡單的python web應用,需要訪問redis,web應用與redis應用在不同的容器中,下面實現兩個容器的訪問。
from flask import flask
from redis import redis
import os
import socket
dockerfile
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
這時就可在本地訪問了:
Docker 容器之間的通訊
預設情況容器和主機之間的網路通訊是封閉的,如果要讓容器能夠被外部網路訪問,需要在啟動容器的時候指定要開放的埠,這樣我們就能通過主機的網路訪問容器內提供的的服務了.我們在容器中執行了乙個web伺服器,使用者需要訪問這個容器內的資源,這裡為了方便,直接使用官方手冊裡的示例 1 命令列分解 本文把dock...
Docker容器之間互訪
準備部署基於springboot nacos redis mysql程式,每個元件都分別放到指定容器中,此時就遇到了乙個問題,那就是容器之間怎麼才能互相訪問?下面介紹一下容器互訪的解決方式。本文使用的centos是自定義的centos映象,可以直接在容器中使用vim,ifconfig命令,該映象對應...
docker宿主機訪問docker容器服務失敗
原因 因為docker的虛擬ip網段是172.17.與區域網的ip網段172.17衝突了,所以有兩種方式 解決方法 一 修改docker網絡卡資訊,將網段改為與區域網不同的即可 linux修改方法 第一步 刪除原有配置 sudo service docker stop sudo ip link se...