docker-compose 编排python容器
目录结构
一、配置相关挂载目录及其文件
1、 创建需要挂载的相应的挂载目录
mkdir -p /root/pythondocker/
二、编写容器编排文件
docker-compose.yml,注意格式缩进
version: '3'
services:
python:
image: python:3.7
container_name: docker-python-demo
ports:
- "8080:8080"
volumes:
- /root/pythondocker:/code
privileged: true
command: bash /code/run.sh
requirements.txt
flask
run.sh
pip install -r /code/requirements.txt -i https://pypi.douban.com/simple
python /code/server.py
server.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/h')
def hello_world1():
return 'Hello World zhangsan'
if __name__ == '__main__':
app.run(host='0.0.0.0', port='8080')
三、运行及查看
[root@iZ2ze5ot8cnsficuqqnoj5Z /root/nginxdocker/]# docker-compose up -d
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# docker-compose ps
Name Command State Ports
-----------------------------------------------------------------------
docker-python-demo bash /code/run.sh Up 0.0.0.0:8080->8080/tcp
修改server.py,需要重启
server.py
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
@app.route('/h')
def hello_world1():
return 'Hello World zhangsan'
if __name__ == '__main__':
重启容器
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# docker-compose stop python
Stopping docker-python-demo ... done
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# docker-compose ps
Name Command State Ports
---------------------------------------------------------
docker-python-demo bash /code/run.sh Exit 137
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# docker-compose start python
Starting python ... done
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# curl localhost:8080/h
Hello World zhangsan
[root@iZ2ze5ot8cnsficuqqnoj5Z pythondocker]# curl localhost:8080/
Hello World!
进步ing