zoukankan      html  css  js  c++  java
  • 宿主CentOS7环境下docker中nginx的安装

        最近在docker中安装nginx时一直测试不成功,起初以为是firewalld的原因,但是端口也开放了,却还是连接不成功

    最后找到了原因,是docker启动后nginx却没有启动,都是泪啊......。

    1. 拉取标签为latest的Nginx镜像
    docker pull nginx:latest
    2. 创建Nginx容器
    docker run -di --name=docker_nginx -p 80:80 nginx/bin/bash

    (注意:该步骤命令有问题,详情见步骤4)
    注意:
    后面的/bin/bash的作用是表示载入容器后运行bash ,docker中必须要保持一个进程的运行,要不然整个容器启动后就会马上kill itself,这样当你使用docker ps 查看启动的容器时,就会发现你刚刚创建的那个容器并不在已启动的容器队列中。这个/bin/bash就表示启动容器后启动bash,主要用在交互式进程中,守护式进程可以不用添加此项
    3. 测试Nginx
    浏览器地址栏输入: http://192.168.37.131
    失败,未出现Welcome to nginx!
    中间过程没有出现任何错误,这时可以从以下方面考虑:
    (1)防火墙,可以参考https://www.cnblogs.com/damoblog/p/11082747.html
    (2)docker容器中nginx是否启动,启动方法为:
    a. 登录或者进入容器
    docker exec -it container_name/container_id /bin/bash或者/bin/sh
    默认情况下软件安装的目录为:/ect目录下
    b. 启动docker中nginx服务,找到目录:/etc/init.d
    root@123:/etc/init.d#./nginx start
    查看服务是否启动成功,docker容器中ps命令行并没有,需要自己根据实际情况进行安装
    ps -aux|grep nginx

    4. 再次地址栏输入http://192.168.37.131,成功,但是怎么在运行容器的时候就启动nginx呢?

    原因分析:在步骤2,创建容器命令使用错误,如

    -i: 以交互模式运行容器,通常与 -t 同时使用;
    -d: 后台运行容器,并返回容器ID,即守护式容器。

    因此步骤2应修改为:

    docker run -d --name=docker_nginx -p 80:80 nginx:latest

    即,使用docker镜像nginx:latest以后台模式启动一个容器(或者说创建一个守护式容器),并将容器命名为docker_nginx 。

    这样就不用再单独的去启动nginx了。

  • 相关阅读:
    7多态与异常处理的课上作业
    软工概论第十五周总结
    构建之法阅读笔记之三
    小组项目冲刺第六天的个人总结
    书店促销
    小组项目冲刺第五天的个人总结
    找水王
    软工概论第十四周总结
    动态规划——买书问题
    小组项目冲刺第四天的个人总结
  • 原文地址:https://www.cnblogs.com/damoblog/p/12789963.html
Copyright © 2011-2022 走看看