Poetry is primarily a packager. Pipx installs python scripts like gita, poetry, youtube-dl etc as user commands. They cannot be replaced by docker.
Finally, I never had a good development experience inside a docker container. Pyenv, pipx and poetry play much nicer with the system development tools and give a better development experience.
Not everything is a web-accessible service, and sometimes you do care about short startup time -- for example, if you have a file conversion script that you need to run on 1000's of files.
You can kinda-sort fake it with "docker exec", but it is really awkward, and at some point, pyenv etc.. is just easier.
You can simply mount your current directory to docker.
2. Docker doesn't ONLY support web-accessible services:
For example, you can run aws cli without python with this alias.
aws() { docker-run --entrypoint="aws" infrastructureascode/aws-cli:1.16.309 "$@" }
3. When you need to debug python code live with your IDE: Check these out https://code.visualstudio.com/docs/containers/debug-common https://www.jetbrains.com/help/pycharm/using-docker-as-a-rem...
Pyenv is used to manage different versions of Python and virtual environments (using pyenv-virtualenv [2]). Pipx will be accessible only from the python version or virtual environment it is installed to. However, the programs that you install using pipx (like gita or poetry) have their own virtual environments, and run reliably irrespective of accessibility of pipx and what you have activated using pyenv.
It's easier to install pipx into the pyenv python version that you have set up as global. This ensures that you have access to pipx most of the time. You could just spawn a temporary shell with global python to access pipx otherwise.
[1] https://jacobian.org/2019/nov/11/python-environment-2020/ [2] https://github.com/pyenv/pyenv-virtualenv