我正在尝试让任何 python 命令在我的 docker 容器上运行,因为我正在尝试安装 odoo 模块的要求,但我不知道为什么,而且文档很少(据我所知)
sudo docker exec -it veivaa-odoo1 /bin/bash
odoo@veivaa-odoo1:/$ docker-compose run pip install py-asterisk
bash: docker-compose: command not found
odoo@veivaa-odoo1:/$ docker-compose run veivaa-odoo1 apt-get update
bash: docker-compose: command not found
odoo@veivaa-odoo1:/$ sudo docker-compose run veivaa-odoo1 apt-get update
bash: sudo: command not found
odoo@veivaa-odoo1:/$ docker-compose run veivaa-odoo1 /bin/bash
bash: docker-compose: command not found
odoo@veivaa-odoo1:/$ docker run -it veivaa-odoo1 pip install py-asterisk
bash: docker: command not found
odoo@veivaa-odoo1:/$ sudo docker-compose -f build.yml run cli
bash: sudo: command not found
请帮忙
答案1
完成后:
sudo docker exec -it veivaa-odoo1 /bin/bash
... 您的输入将进入您在容器中启动的 bash 解释器,因此会与容器环境一起运行。docker-compose
是用于管理容器的命令,当然通常无法在容器内使用。同样,默认情况下,容器内的 id 是 root(在容器环境中),因此您不需要sudo
。可以使用普通的pip install py-asterisk
。但是,这不是在容器中安装软件的正确方法,正确的方法是创建一个派生基础映像的映像,向其中添加应用程序,然后运行该映像:
您创建一个Dockerfile
:
FROM somebaseimage
RUN pip install py-asterisk
然后从中创建图像:
docker build -t mynewimage .
然后你就可以运行你的图像:
docker run mynewimage
您通常希望使用ENTRYPOINT
或CMD
来Dockerfile
定义容器启动时运行的内容。