Если вы хотите отладить свой контейнер docker, я предлагаю не использовать флаг -d
, если вы не абсолютно уверены, что все работает так, как должно.
В вашем случае, если вы убрав флаг -d
, вы увидите, что ваш сценарий python неполон:
docker run --rm --name flask_container -p 5001:5656 so
Traceback (most recent call last):
File "app.py", line 5, in <module>
app.run(ssl_context="adhoc", host="0.0.0.0", port=5656)
NameError: name 'app' is not defined
Быстрое исправление будет иметь следующее app.py
:
from flask import Flask
app = Flask(__name__)
if __name__ == "__main__":
app.run(ssl_context="adhoc", host="0.0.0.0", port=5656)
После перестроив образ, теперь это приводит к:
docker run --rm --name flask_container -p 5001:5656 so
* Serving Flask app "app" (lazy loading)
* Environment: development
* Debug mode: on
* Running on https://0.0.0.0:5656/ (Press CTRL+C to quit)
* Restarting with stat
* Debugger is active!
* Debugger PIN: 423-289-631
Теперь вы можете перезапустить контейнер с помощью -d
:)
docker run --rm --name flask_container -d -p 5001:5656 so
2c777b21c96f080c05df714c339c80ca88c9943e64cc0de12d05544c3d81faba
apoehlmann:~/workspace/teststuff/stackoverflow$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
2c777b21c96f so "python3 app.py" 3 seconds ago Up 1 second 0.0.0.0:5001->5656/tcp flask_container