我有一个远程docker容器,我已经使用它来运行:
docker pull bamos/openface
docker run -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
我还有
的本地目录/Users/name/Documents/my-project
我需要import openface
来自my-project
内的脚本ipython
,但我不知道如何将my-project
挂载到openface
,或者应该它是相反的方式。
一般来说,我一直在阅读这里的文档https://docs.docker.com/engine/tutorials/dockervolumes/#mount-a-host-directory-as-a-data-volume,但我仍然很困惑。如果有人能
,我将不胜感激openface
my-project
谢谢!
=============================================== =============== 编辑:
现在我正在做:
docker run -v /Users/name/Documents/my-project:/root/my-project -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
它似乎正在发挥作用。
答案 0 :(得分:1)
所以,我会指出一些你可以学习的主题,并提出我认为对你有用的想法。
在您还在学习的时候,让我们来看看这些主题:
使用泊坞窗图片
这是你已经知道的。运行docker run -v /Users/name/Documents/my-project:/root/my-project -p 9000:9000 -p 8000:8000 -t -i bamos/openface /bin/bash
并开始使用它。运行一些命令并查看所提供图像的功能。
用例(对我来说):
docker run --name some-cassandra -d cassandra:latest
并且它已经在运行现在不太好用,但使用起来很有意思。
自定义泊坞窗图片
您可以创建自己的短片,而不是使用短暂的图像。所以,你需要了解Dockerfile。这是一个简单的例子:
FROM bamos/openface
RUN pip install flask
COPY myentrypoint.sh
CMD ["myentrypoint.sh"]
快速解释:
bamos/openface
使用此图片,只需使用名称Dockerfile
保存并运行docker build -t
chibro2/myopenface .
,然后您就可以使用额外的包来拥有自己的图像。
entrypoint是一个默认的sh命令,它将启动一些东西(例如,一个Web服务器)。如果您有在线实例(例如AWS),您可以运行您的docker,它将启动您的Web服务。如果您在本地进行测试,则应在线获得相同的结果。一个常见问题是使用不同版本进行测试(例如python3 local和服务器上的python2)。
用例:
检查: https://www.digitalocean.com/community/tutorials/docker-explained-using-dockerfiles-to-automate-building-of-images https://docs.docker.com/engine/reference/builder/
整合一些泊坞窗图片
我真的喜欢Docker的一件事是码头工作者。您可以轻松使用多个彼此协作的docker镜像。 docker-compose的一个例子:
version: '3'
services:
db:
image: postgres
web:
build: .
command: python3 manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- "8000:8000"
depends_on:
- db
快速解释:
python3 manage.py runserver 0.0.0.0:8000
运行服务器。Ps。:是的,它使用代码作为卷,但这是我不推荐用于生产的东西,但建议用于开发(因此,您可以轻松更改代码,而无需构建图像)。
使用docker-compose,我们可以轻松集成多个项目并使用一个命令启动所有项目:docker-compose up
用例:
docker-compose scale web=2
将创建2个Web服务器实例)。检查此快速入门:https://docs.docker.com/compose/django/
结论
关于docker有太多了解。我不能对此给出一个很好的答案,但我希望我可以帮助一点。
未来可能的步骤是使用Docker Machine和Docker Swarm。