Docker安裝運行Nginx

   關於Docker運行Nginx的文章層出不窮,鄙人推薦http://www.runoob.com/docker/docker-install-nginx.html這篇文章中介紹的兩種方法。在這裏,我着重介紹下第二種方法吧,直接從docker Hub上拉取Nginx鏡像,供咱們使用。php

     這裏,我在虛擬機中安裝了CentOS7,而後,安裝docker,這一步,就沒必要詳細介紹了。假設,你已經成功安裝了docker。我這裏安裝的版本是1.13.1,API版本1.26,html

Client:
 Version:         1.13.1
 API version:     1.26
 Package version: <unknown>
 Go version:      go1.8.3
 Git commit:      774336d/1.13.1
 Built:           Wed Mar  7 17:06:16 2018
 OS/Arch:         linux/amd64

Server:
 Version:         1.13.1
 API version:     1.26 (minimum version 1.12)
 Package version: <unknown>
 Go version:      go1.8.3
 Git commit:      774336d/1.13.1
 Built:           Wed Mar  7 17:06:16 2018
 OS/Arch:         linux/amd64
 Experimental:    false

首先,建立一個目錄:mysql

mkdir -p ~/nginx/www ~/nginx/logs ~/nginx/conf

命令進入nginx目錄。linux

而後,咱們經過docker search命令,來檢索nginx鏡像nginx

docker search nginx
INDEX       NAME                                                             DES                                                                                                                                                    CRIPTION                                     STARS     OFFICIAL   AUTOMATED
docker.io   docker.io/nginx                                                  Off                                                                                                                                                    icial build of Nginx.                        8564      [OK]
docker.io   docker.io/jwilder/nginx-proxy                                    Aut                                                                                                                                                    omated Nginx reverse proxy for docker c...   1335                 [OK]
docker.io   docker.io/richarvey/nginx-php-fpm                                Con                                                                                                                                                    tainer running Nginx + PHP-FPM capable ...   547                  [OK]
docker.io   docker.io/jrcs/letsencrypt-nginx-proxy-companion                 Let                                                                                                                                                    sEncrypt container to use with nginx as...   368                  [OK]
docker.io   docker.io/kong                                                   Ope                                                                                                                                                    n-source Microservice & API Management ...   188       [OK]
docker.io   docker.io/webdevops/php-nginx                                    Ngi                                                                                                                                                    nx with PHP-FPM                              103                  [OK]
docker.io   docker.io/kitematic/hello-world-nginx                            A l                                                                                                                                                    ight-weight nginx container that demons...   99
docker.io   docker.io/bitnami/nginx                                          Bit                                                                                                                                                    nami nginx Docker Image                      52                   [OK]
docker.io   docker.io/zabbix/zabbix-web-nginx-mysql                          Zab                                                                                                                                                    bix frontend based on Nginx web-server ...   51                   [OK]
docker.io   docker.io/1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubu                                                                                                                                                    ntu-16-nginx-php-phpmyadmin-mysql-5          35                   [OK]
docker.io   docker.io/linuxserver/nginx                                      An                                                                                                                                                     Nginx container, brought to you by Linu...   35
docker.io   docker.io/tobi312/rpi-nginx                                      NGI                                                                                                                                                    NX on Raspberry Pi / armhf                   19                   [OK]
docker.io   docker.io/nginxdemos/nginx-ingress                               NGI                                                                                                                                                    NX Ingress Controller for Kubernetes . ...   11
docker.io   docker.io/blacklabelops/nginx                                    Doc                                                                                                                                                    kerized Nginx Reverse Proxy Server.          9                    [OK]
docker.io   docker.io/wodby/drupal-nginx                                     Ngi                                                                                                                                                    nx for Drupal container image                9                    [OK]
docker.io   docker.io/webdevops/nginx                                        Ngi                                                                                                                                                    nx container                                 8                    [OK]
docker.io   docker.io/centos/nginx-18-centos7                                Pla                                                                                                                                                    tform for running nginx 1.8 or building...   6
docker.io   docker.io/nginxdemos/hello                                       NGI                                                                                                                                                    NX webserver that serves a simple page ...   6                    [OK]
docker.io   docker.io/1science/nginx                                         Ngi                                                                                                                                                    nx Docker images that include Consul Te...   4                    [OK]
docker.io   docker.io/centos/nginx-112-centos7                               Pla                                                                                                                                                    tform for running nginx 1.12 or buildin...   3
docker.io   docker.io/behance/docker-nginx                                   Pro                                                                                                                                                    vides base OS, patches and stable nginx...   2                    [OK]
docker.io   docker.io/pebbletech/nginx-proxy                                 ngi                                                                                                                                                    nx-proxy sets up a container running ng...   2                    [OK]
docker.io   docker.io/toccoag/openshift-nginx                                Ngi                                                                                                                                                    nx reverse proxy for Nice running on sa...   1                    [OK]
docker.io   docker.io/travix/nginx                                           NGi                                                                                                                                                    nx reverse proxy                             1                    [OK]
docker.io   docker.io/mailu/nginx                                            Mai                                                                                                                                                    lu nginx frontend                            0                    [OK]

而後,經過docker pull命令,從遠程拉取nginx鏡像,命令以下:web

docker pull nginx

拉取成功後,咱們能夠經過docker images命令,查看鏡像:sql

[root@localhost nginx]# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/nginx     latest              ae513a47849c        4 weeks ago         109 MB

而後,經過docker run命令啓動容器,運行鏡像:docker

[root@localhost nginx]#  docker run -p 80:80 --name mynginx -v $PWD/www:/www -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf --privileged=true -v $PWD/logs:/www/logs -v $PWD/html:/etc/nginx/html  -d nginx

這裏,-v $PWD/www:/www把主機當前目錄下的www目錄綁定到了docker中www目錄。須要注意的是,ubuntu

因爲docker容器須要對nginx.conf的訪問權限,所以,綁定nginx.conf文件時,後面添加--privileged=true命令。centos

經過docker ps命令,查看容器運行情況

[root@localhost nginx]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
5b3e68a0d311        nginx               "nginx -g 'daemon ..."   26 minutes ago      Up 26 minutes       0.0.0.0:80->80/tcp   mynginx

也能夠經過,docker ps -a查看全部容器,包括已經退出的容器。

通過以上步驟,nginx鏡像已經成功在docker容器中運行,接下來,咱們經過訪問http://localhost來驗證,正常狀況下:

docker nginx

這樣,咱們的nginx已經啓動成功了。

 

注意事項:

一、若是出現運行容器後,docker ps沒有發現容器進程,說明容器啓動過程發生錯誤閃退,能夠經過docker ps -a看到閃退的容器,而後,經過docker logs 容器名或容器ID來查看docker日誌,裏面記錄了容器啓動發生錯誤的緣由,找到問題所在,就好辦了。

這個過程當中,還會常常用到docker rm移除容器的命令,docker logs 查看容器日誌,docker stop/start/restart等中止/啓動/重啓命令。

由此,docker中運行NGINX的過程就完成了,一回生,二回熟,nginx的配置到啓動,只須要秒秒鐘。

相關文章
相關標籤/搜索