Centos 基于Docker的Nginx安装

Docker安装

环境要求

Docker支持CentOS 7 (64-bit)和CentOS 6.5 (64-bit) 或更高的版本。


Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。


Docker 运行在 CentOS-6.5 或更高的版本的 CentOS 上,要求系统为64位、系统内核版本为 2.6.32-431 或者更高版本。


查看内核命令:


uname -r

1

安装Docker

如果之前已经安装过Docker,则先移除旧版本。具体命令如下:


sudo yum remove docker
sudo yum remove docker-client
sudo yum remove docker-client-latest
sudo yum remove docker-common
sudo yum remove docker-latest
sudo yum remove docker-latest-logrotate
sudo yum remove docker-logrotate
sudo yum remove docker-selinux
sudo yum remove docker-engine-selinux
sudo yum remove docker-engine

安装依赖工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

添加软件源信息

sudo yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo


更新 yum 缓存

sudo yum makecache fast


安装 Docker-ce

sudo yum -y install docker-ce


启动 Docker 后台服务

sudo systemctl start docker


测试hello-world

docker run hello-world


由于本地没有hello-world这个镜像,所以会下载一个hello-world的镜像,并在容器内运行。


基于Docker的Linux安装

查询Docker Hub的Nginx镜像:


docker search nginx


执行结果:

[root@iZ2zeck5vyquf4xc1v0e4fZ nginx]# docker search nginx
NAME                                                   DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
nginx                                                  Official build of Nginx.                        9946                [OK]
jwilder/nginx-proxy                                    Automated Nginx reverse proxy for docker con…   1435                                    [OK]
richarvey/nginx-php-fpm                                Container running Nginx + PHP-FPM capable of…   627                                     [OK]
jrcs/letsencrypt-nginx-proxy-companion                 LetsEncrypt container to use with nginx as p…   425                                     [OK]
kong                                                   Open-source Microservice & API Management la…   235                 [OK]
webdevops/php-nginx                                    Nginx with PHP-FPM                              114                                     [OK]
kitematic/hello-world-nginx                            A light-weight nginx container that demonstr…   111
zabbix/zabbix-web-nginx-mysql                          Zabbix frontend based on Nginx web-server wi…   73                                      [OK]
bitnami/nginx                                          Bitnami nginx Docker Image                      58                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5   ubuntu-16-nginx-php-phpmyadmin-mysql-5          48                                      [OK]
linuxserver/nginx                                      An Nginx container, brought to you by LinuxS…   42
tobi312/rpi-nginx                                      NGINX on Raspberry Pi / armhf                   23                                      [OK]
blacklabelops/nginx                                    Dockerized Nginx Reverse Proxy Server.          12                                      [OK]
wodby/drupal-nginx                                     Nginx for Drupal container image                11                                      [OK]
webdevops/nginx                                        Nginx container                                 8                                       [OK]
nginxdemos/hello                                       NGINX webserver that serves a simple page co…   8                                       [OK]
centos/nginx-18-centos7                                Platform for running nginx 1.8 or building n…   8
centos/nginx-112-centos7                               Platform for running nginx 1.12 or building …   5
1science/nginx                                         Nginx Docker images that include Consul Temp…   4                                       [OK]
behance/docker-nginx                                   Provides base OS, patches and stable nginx f…   3                                       [OK]
travix/nginx                                           NGinx reverse proxy                             2                                       [OK]
pebbletech/nginx-proxy                                 nginx-proxy sets up a container running ngin…   2                                       [OK]
toccoag/openshift-nginx                                Nginx reverse proxy for Nice running on same…   1                                       [OK]
mailu/nginx                                            Mailu nginx frontend                            1                                       [OK]
ansibleplaybookbundle/nginx-apb                        An APB to deploy NGINX                          0                                       [OK]

其中第一个为官方镜像,拉取name为nginx的镜像:


docker pull nginx


下载完成,查看本地镜像列表:


[root@iZ2zeck5vyquf4xc1v0e4fZ nginx]# docker images nginx

REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

nginx               latest              dbfc48660aeb        5 days ago          109MB


启动前准备工作

首先,启动Nginx需要配置nginx.conf文件,此文件可以在原有的Nginx配置中找到,也可以在官网下载压缩包,找到对应的nginx.conf、mime.types(nginx.conf中会用到)和conf.d文件目录(nginx.conf可配置加载此文件夹下的配置)。找到以上文件及文件夹之后,放到指定位置,比如:/root/nginx文件夹下。


启动命令

docker run -p 80:80 --name docker-nginx -v /root/nginx/:/etc/nginx/ -d nginx


-p 80:80:将容器的80端口映射到主机的80端口,第一个为容器80端口,第二个为主机80端口。

–name 指定docker的名称

-v 将当前主机的nginx目录挂载到容器的/etc/nginx目录下。其他需要挂载的可重复使用此参数。

完成docker的启动之后,执行docker ps可查看docker的运行情况:


[root@iZ2zeck5vyquf4xc1v0e4fZ ~]# docker ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES

9cce31704b6d        nginx               "nginx -g 'daemon of…"   3 days ago          Up 41 seconds       0.0.0.0:80->80/tcp   docker-nginx

后续可按照nginx的政策使用方式进行操作。



上一篇:如何添加swap分区


下一篇:docker 安装 Nginx