我正在学习如何部署web应用程序,我曾经使用过它,nginx和gunicorn,一切都很完美,但现在我不得不使用Docker,我被困住了。
当我安装没有Docker的nginx时,我只运行:
sudo systemctl start nginx然后我去了我的网络服务器,看到nginx在运行。但我不明白为什么我不能用码头写作?我去了一个特定的网址,什么都没发生。当我进入:
docker exec -ti nginx bash它不知道诸如sudo、systemctl、start等命令。
正确的方法是什么?我读过大约10篇文章,但仍然不知道如何部署和运行我的web应用程序(尽管不是在本地主机上)。
发布于 2018-10-21 21:35:58
docker restart <container name>就可以完成这项工作(如果您想重新启动nginx)docker run --name nginx -v /opt/nginx:/usr/share/nginx/html -p 8080:80 docker.io/nginx现在curl http://<you machine ip>:8080应该能工作
发布于 2018-10-21 14:25:21
您不需要将ssh放入nginx容器并发出sudo systemctl start nginx command。启动容器后,nginx将自动启动。
这是一个启动nginx服务的简单docker-compose.yml文件:
version: '3'
services:
nginxserver:
image: nginx
ports:
- "8080:80"
volumes:
- /opt/nginx:/usr/share/nginx/html:rw运行以下命令启动服务:
docker-compose -f docker-compose.yml up服务将启动,并可在http://localhost:8080/的本地主机上访问(请参阅上述yaml文件中的端口映射部分)
还请参阅yaml文件中的卷映射部分。本地目录/opt/nginx映射到容器目录/usr/share/nginx/html,这是默认的nginx根目录。
用您想要的任何本地目录替换/opt/nginx,只需将一个简单的index.html文件放在那里进行测试:
<html>
<body>
Hello world!
</body>
</html>现在访问http://localhost:8080/,您将看到Hello消息。使用本地目录部署文件。
https://stackoverflow.com/questions/52915883
复制相似问题