社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

在Docker撰写之后,nginx不运行服务器

Desiigner • 7 年前 • 1758 次点击  

我正在学习如何部署Web应用程序,我曾经使用过nginx和gunicorn,一切都很完美,但现在我不得不使用docker,我陷入困境。

当我在没有Docker的情况下安装nginx时,我只是运行:

sudo systemctl start nginx

然后我去了我的网络服务器,看到nginx在运行。但我不明白为什么我不能用Docker作曲?我转到一个特定的URL,什么都没有发生。当我访问时:

docker exec -ti nginx bash

它仍然不知道sudo、systemctl、start等命令。

正确的方法是什么?我读了10篇类似的文章,但仍然不理解如何部署和运行我的Web应用程序(尽管不是在本地主机上)。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39171
文章 [ 2 ]  |  最新文章 7 年前
Ciprian Stoica
Reply   •   1 楼
Ciprian Stoica    7 年前

您不需要ssh进入nginx容器并发出 sudo systemctl start nginx command . 一旦启动容器,nginx将自动启动。

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

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根目录。

更换 /选择/nginx 无论您想要什么本地目录,只需将 index.html 在那里进行测试:

<html>
<body>
Hello world!
</body>
</html>

立即访问 http://localhost:8080/ 你应该看到世界的问候语。使用该本地目录部署文件。

Ijaz Ahmad Khan
Reply   •   2 楼
Ijaz Ahmad Khan    7 年前
  • 您不需要在Docker容器中运行SystemCtl
  • 只是 docker restart <container name> 将执行此操作(如果要重新启动nginx)
  • 你甚至不需要使用docker compose来运行nginx
  • 你可以跑了 docker run --name nginx -v /opt/nginx:/usr/share/nginx/html -p 8080:80 docker.io/nginx

现在卷曲 http://<you machine ip>:8080 应该工作