我是docker的新手,应该做基于nginx和mongoDB docker镜像的人脸检测项目。我不想更改我的图像,因为我认为在这个nginx和mongoDB上有一些特殊的设置。
为了运行我的代码,我需要anaconda,因为我不能用pip安装像dlib这样的库。我的问题是,我可以在nginx docker镜像上安装anaconda吗?如果是,如何
感谢
Nginx的Docker镜像是基于Debian的,所以是的,肯定可以在其中安装anaconda
。然而,这可能不是一个好主意,因为Docker的理念是每个Docker容器都应该只有一个关注点,一个好的经验法则是容器应该只运行一个进程(请参阅Dockerfile最佳实践(。您不应该在同一个Docker容器中同时运行Nginx、MongoDB以及Python代码。
相反,您可能想要研究docker-compose
,它将帮助您协调运行多个容器。在docker-compose.yml
文件中,您可以定义三个"服务",它们在docker-compose
术语中被称为:
- 暴露端口27017的
mongodb
容器 - Python人脸检测项目的Docker镜像(为此,您必须编写自己的Dockerfile(,公开应用程序所需的任何端口
nginx
容器,可能绑定端口80&443发送给您的主机
然后可以将每个服务设置为相互连接。docker-compose
还为您处理Docker网络,因此您可以从Nginx容器访问MongoDB容器上的端口27017作为mongodb:27017
(前提是该服务名为"MongoDB"(