gpt4 book ai didi

docker - 卷挂载不适用于Digital Ocean

转载 作者:行者123 更新时间:2023-12-02 18:54:33 27 4
gpt4 key购买 nike

小测试用例:

docker-compose.yml

nginx:
image: nginx:1
ports:
- "80:80"
volumes:
- ./testconf:/etc/nginx/conf.d
- ./testhtml:/usr/share/nginx/html

testconf / nginx.conf
server {
listen 80;
server_name _;

location / {
root /usr/share/nginx/html;

try_files $uri $uri/;
}
}

testhtml / index.html
<!DOCTYPE html>
<html>
<body>
<p>Hello</p>
</body>
</html>

机器创建:
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxx --digitalocean-region "ams3" edgee

push :
$ eval $(docker-machine env edgee)
$ docker-compose up
$ curl $(docker-machine ip edgee)

当我查看容器内部时,应该挂载的文件不存在。这在本地工作,可以在机器和virtualbox上工作,但是在digitalocean上不行吗?

最佳答案

这样的期望是错误的。您的机器和 digital ocean 不共享文件夹。当您有以下数量时

  volumes:
- ./testconf:/etc/nginx/conf.d
- ./testhtml:/usr/share/nginx/html

并且您当前的文件夹是 /user/name/projects,然后使用docker指向您的 digital ocean 进行 docker-compose up,将告诉远程docker进行映射
digital ocean 服务器上的 /user/name/projects/testhtml文件夹到容器内的 /usr/share/nginx/html。主机上没有此类文件夹,因此将创建并共享一个空白文件夹。

现在,它可以通过virtualbox在本地使用的原因是使用自动共享文件夹

shared folders

如您在我的Mac上所见, /Users是自动共享的。因此,我启动的任何存在于 docker-compose中的 /Users项目,卷共享将自动运行。因为来自主机的 /Users被共享安装在docker-machine VM内的 /Users上。但是,如果我将项目移至 /Users的其他文件夹,则其行为将与您现在在 digital ocean 中看到的行为相同。

因此,您唯一可以做的就是在构建过程中将所需的文件复制到Dockerfile中。或将项目复制到远程服务器上并从那里运行

关于docker - 卷挂载不适用于Digital Ocean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46328751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com