首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Nginx在docker-组合之后不会运行服务器。

Nginx在docker-组合之后不会运行服务器。
EN

Stack Overflow用户
提问于 2018-10-21 13:37:28
回答 2查看 1.7K关注 0票数 0

我正在学习如何部署web应用程序,我曾经使用过它,nginx和gunicorn,一切都很完美,但现在我不得不使用Docker,我被困住了。

当我安装没有Docker的nginx时,我只运行:

代码语言:javascript
复制
sudo systemctl start nginx

然后我去了我的网络服务器,看到nginx在运行。但我不明白为什么我不能用码头写作?我去了一个特定的网址,什么都没发生。当我进入:

代码语言:javascript
复制
docker exec -ti nginx bash

它不知道诸如sudo、systemctl、start等命令。

正确的方法是什么?我读过大约10篇文章,但仍然不知道如何部署和运行我的web应用程序(尽管不是在本地主机上)。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-21 21:35:58

  • 您不需要在docker容器中运行systemctl。
  • 只要docker restart <container name>就可以完成这项工作(如果您想重新启动nginx)
  • 您甚至不需要使用docker编写来运行nginx。
  • 您可以只运行docker run --name nginx -v /opt/nginx:/usr/share/nginx/html -p 8080:80 docker.io/nginx

现在curl http://<you machine ip>:8080应该能工作

票数 1
EN

Stack Overflow用户

发布于 2018-10-21 14:25:21

您不需要将ssh放入nginx容器并发出sudo systemctl start nginx command。启动容器后,nginx将自动启动。

这是一个启动nginx服务的简单docker-compose.yml文件:

代码语言:javascript
复制
version: '3'
services:
  nginxserver:
    image: nginx
    ports:
      - "8080:80"
    volumes:
      - /opt/nginx:/usr/share/nginx/html:rw

运行以下命令启动服务:

代码语言:javascript
复制
docker-compose -f docker-compose.yml up

服务将启动,并可在http://localhost:8080/的本地主机上访问(请参阅上述yaml文件中的端口映射部分)

还请参阅yaml文件中的卷映射部分。本地目录/opt/nginx映射到容器目录/usr/share/nginx/html,这是默认的nginx根目录。

用您想要的任何本地目录替换/opt/nginx,只需将一个简单的index.html文件放在那里进行测试:

代码语言:javascript
复制
<html>
<body>
Hello world!
</body>
</html>

现在访问http://localhost:8080/,您将看到Hello消息。使用本地目录部署文件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52915883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档