欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Docker創(chuàng)建一個Nginx服務器的方法步驟

 更新時間:2019年01月04日 14:43:42   作者:roverliang  
使用Dokcer可以很好的對鏡像進行管理,創(chuàng)建和使用容器。這篇文章主要介紹了Docker創(chuàng)建一個Nginx服務器的方法步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

運行環(huán)境: MAC

Docker 版本: Docker version 17.12.0-ce, build c97c6d6

一、啟動Nginx 服務器

啟動Nginx 服務器,并進入模擬終端

docker run -p 8080:80 --name nginx_web -it nginx /bin/bash

二、了解Nginx 鏡像的配置文件位置

日志文件位置:/var/log/nginx

配置文件位置: /etc/nginx

資源存放的位置: /usr/share/nginx/html

上面的配置路徑是我電腦上的虛擬linux中地址,請各位讀者,也自己去看下自己的配置位置

三、修改Nginx 的默認首頁,測試是否可以運行

重要提示: 對于不想折騰的同學,可以直接從第四步來運行

/usr/share/nginx/html

echo "<h1>Hello Docker</h1>" > index.html

到這里有的朋友,可能會發(fā)現(xiàn),我訪問localhost:8080 端口,第一次出現(xiàn)了Nginx 的歡迎界面,而第二次就出現(xiàn)了404 提示。

關于這個問題,本文不展開詳序,如果不明白的,可以參考:
1.docker運行nginx為什么要使用 daemon off
2.docker容器運行后退出,怎么才能一直運行?
3.Docker run 命令的使用方法

Docker 執(zhí)行 docker run 之后,先在當前操作系統(tǒng)的基礎上,虛擬化了一個精簡版的linux(僅僅包含系統(tǒng)運行的最精簡功能),然后加載我們的Nginx鏡像。當Nginx鏡像加載到我們的虛擬Linux環(huán)境中時,相當于在系統(tǒng)里執(zhí)行了一個腳本,而這個腳本就是Nginx。

由于默認的Nginx 是不作為守護進程運行的。所以當Docker內(nèi)監(jiān)聽到80端口的請求后,完成之后,就退出了Nginx的進程。該容器內(nèi)只有一個進程,并且是非守護的,執(zhí)行完請求進程就銷毀了。那么這個容器也就沒有存在的必要了,所以Docker 中這個服務也就停掉了。這也就是我們執(zhí)行 docker top 看不到當前運行的容器的原因。

作為暫時解決Nginx 只執(zhí)行一次就退出的問題,我們可以進入交互式終端,執(zhí)行 nginx & 讓nginx 作為守護進程后臺運行。

查看我們正在運行的容器

roverliang$ docker ps
CONTAINER ID    IMAGE        COMMAND       CREATED       STATUS       PORTS        NAMES

如果什么內(nèi)容都沒有,說明當前沒有正在運行的容器。

查看已經(jīng)運行結(jié)束的容器

roverliang$ docker ps -a
CONTAINER ID    IMAGE        COMMAND         CREATED       STATUS           PORTS         NAMES
5bff285f60b3    nginx        "/bin/bash"       9 minutes ago    Exited (0) 6 minutes ago              nginx_web

重新啟動我們剛剛啟動過的容器

docker start nginx_web

進入到我們的容器內(nèi)部

docker attach nginx_web

echo "<h1>Hello Docker</h1>" > /usr/share/nginx/html/index.html

nginx & 

然后 使用快捷鍵 control + Q 退出當前的容器

之后我們在瀏覽器再次訪問:http://localhost:8080/

折騰了這么久,終于看到我們期望的的內(nèi)容了。

Hello Docker

四、將前面Nginx Demo 變成一個可以玩的 Demo

先創(chuàng)建我們本機需要映射的文件夾

 mkdir -p docker_study/log docker_study/etc docker_study/html

注意: 在自己的家目錄創(chuàng)建

復制我們docker中nginx 的配置文件

docker cp 65bc23f952db:/etc/nginx/ /Users/roverliang/docker_study/etc/

關閉掉我們的容器

docker stop nginx_web

刪除掉我們的練習的demo,我們重新來構建一個可以用的。

docker rm nginx_web

將Nginx 鏡像和我們本機的目錄進行映射,方便我們修改文件

docker run \
-p 8080:80 \
--name nginx_web \
-v /Users/roverliang/docker_study/log/:/var/log/nginx \
-v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/roverliang/docker_study/html/:/usr/share/nginx/html \
-it \
-d \
nginx \
/bin/bash \

運行到這里,我們可能還是會發(fā)現(xiàn)訪問http://localhost:8080/ 沒有內(nèi)容。但是不要急,解決問題的過程,就是學習新東西的過程,繼續(xù)網(wǎng)上查資料,參考如下:

Docker運行nginx

摘抄文中讓我豁然開朗的一段:

我之前運行的時候,一般都采用交互式:-i 保證容器的stdin開啟-t 為容器生成一個tty終端,在命令的最后加一個/bin/bash來保證可以交互。但是實際上,nginx并沒有運行,導致我以為容器的端口綁定不是持久化的。

接下來我們需要關掉,并刪除我們的容器,再按照如下的命令重啟一個:

docker run \
-p 8080:80 \
--name nginx_web \
-v /Users/roverliang/docker_study/log/:/var/log/nginx \
-v /Users/roverliang/docker_study/etc/nginx.conf:/etc/nginx/nginx.conf \
-v /Users/roverliang/docker_study/html/:/usr/share/nginx/html \
-d \
nginx 

五、修改Nginx 配置,解析一個網(wǎng)站

修改我們剛剛復制過來的nginx 配置

cd /Users/roverliang/docker_study/etc
vim nginx.conf

在Http 模塊中添加如下配置:

 server
  {  
    listen 80; 
    server_name www.test_nginx.com;
    index index.html;
    root /usr/share/nginx/html;
  }  

然后回到宿主機,綁定host 127.0.0.1  www.test_nginx.com

大功告成

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Windows10?Docker?Desktop安裝過程

    Windows10?Docker?Desktop安裝過程

    Docker?Desktop是Docker公司推出的一款桌面應用程序,它提供了一個用戶友好的界面,方便開發(fā)人員在本地環(huán)境中使用容器技術,這篇文章主要介紹了Windows10?Docker?Desktop安裝過程,需要的朋友可以參考下
    2024-01-01
  • 基于Docker搭建iServer集群

    基于Docker搭建iServer集群

    Docker擴展了LXC,提供了更高級別的API,并簡化了應用的打包和部署,為終端用戶創(chuàng)建彼此獨立的私有環(huán)境,可有效節(jié)約開發(fā)者和系統(tǒng)管理員的環(huán)境部署時間。這篇文章主要介紹了基于Docker搭建iServer集群,需要的朋友可以參考下
    2022-04-04
  • Docker私有倉庫管理和刪除本地倉庫中的鏡像

    Docker私有倉庫管理和刪除本地倉庫中的鏡像

    這篇文章主要介紹了Docker私有倉庫管理和刪除本地倉庫中的鏡像,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • docker拉取鏡像報錯:Error?response?from?daemon:?Get?“https://registry-1.docker.io/v2/“:?dial?tcp的解決過程

    docker拉取鏡像報錯:Error?response?from?daemon:?Get?“https://r

    今天做完一個新項目,搭建了一個新的虛擬機,打算使用docker來搭建各種環(huán)境,發(fā)現(xiàn)拉取鏡像報錯Error?response?from?daemon:?Get?"https://registry-1.docker.io/v2/":?dial?tcp,所以接下來給大家介紹了docker拉取鏡像報錯的解決過程,需要的朋友可以參考下
    2024-08-08
  • docker容器狀態(tài)的轉(zhuǎn)換實現(xiàn)

    docker容器狀態(tài)的轉(zhuǎn)換實現(xiàn)

    這篇文章主要介紹了docker容器狀態(tài)的轉(zhuǎn)換實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 在docker中安裝mysql詳解

    在docker中安裝mysql詳解

    本篇文章主要介紹了在docker中安裝mysql詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • CentOS7.2下安裝docker容器教程

    CentOS7.2下安裝docker容器教程

    Docker是一個開源的軟件部署工具,是輕量級的應用容器框架,它可以讓創(chuàng)建和管理 CentOS容器變得簡單。容器就像是輕量級的虛擬機,并且可以以毫秒級的速度來啟動或停止。Docker 幫助系統(tǒng)管理員和程序員在容器中開發(fā)應用程序,并且可以擴展到成千上萬的節(jié)點。
    2018-03-03
  • 詳解使用?docker?compose?部署?golang?的?Athens?私有代理問題

    詳解使用?docker?compose?部署?golang?的?Athens?私有代理問題

    這篇文章主要介紹了使用?docker-compose?部署?golang?的?Athens?私有代理,幫助大家快速學習athens 如何構建私有代理,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)

    如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù)

    本篇文章主要介紹了如何在Docker容器內(nèi)外互相拷貝數(shù)據(jù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • docker compose部署cassandra集群的操作代碼

    docker compose部署cassandra集群的操作代碼

    這篇文章主要介紹了docker compose部署cassandra集群的操作代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-03-03

最新評論