原創 Centos 基於Docker的Nginx安裝
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
安裝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 NAMEDESCRIPTIONSTARSOFFICIALAUTOMATED nginxOfficial build of Nginx.9946[OK] jwilder/nginx-proxyAutomated Nginx reverse proxy for docker con…1435[OK] richarvey/nginx-php-fpmContainer running Nginx + PHP-FPM capable of…627[OK] jrcs/letsencrypt-nginx-proxy-companionLetsEncrypt container to use with nginx as p…425[OK] kongOpen-source Microservice & API Management la…235[OK] webdevops/php-nginxNginx with PHP-FPM114[OK] kitematic/hello-world-nginxA light-weight nginx container that demonstr…111 zabbix/zabbix-web-nginx-mysqlZabbix frontend based on Nginx web-server wi…73[OK] bitnami/nginxBitnami nginx Docker Image58[OK] 1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5ubuntu-16-nginx-php-phpmyadmin-mysql-548[OK] linuxserver/nginxAn Nginx container, brought to you by LinuxS…42 tobi312/rpi-nginxNGINX on Raspberry Pi / armhf23[OK] blacklabelops/nginxDockerized Nginx Reverse Proxy Server.12[OK] wodby/drupal-nginxNginx for Drupal container image11[OK] webdevops/nginxNginx container8[OK] nginxdemos/helloNGINX webserver that serves a simple page co…8[OK] centos/nginx-18-centos7Platform for running nginx 1.8 or building n…8 centos/nginx-112-centos7Platform for running nginx 1.12 or building …5 1science/nginxNginx Docker images that include Consul Temp…4[OK] behance/docker-nginxProvides base OS, patches and stable nginx f…3[OK] travix/nginxNGinx reverse proxy2[OK] pebbletech/nginx-proxynginx-proxy sets up a container running ngin…2[OK] toccoag/openshift-nginxNginx reverse proxy for Nice running on same…1[OK] mailu/nginxMailu nginx frontend1[OK] ansibleplaybookbundle/nginx-apbAn APB to deploy NGINX0[OK]
其中第一個為官方映象,拉取name為nginx的映象:
docker pull nginx
下載完成,檢視本地映象列表:
[root@iZ2zeck5vyquf4xc1v0e4fZ nginx]# docker images nginx REPOSITORYTAGIMAGE IDCREATEDSIZE nginxlatestdbfc48660aeb5 days ago109MB
啟動前準備工作
首先,啟動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 IDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 9cce31704b6dnginx"nginx -g 'daemon of…"3 days agoUp 41 seconds0.0.0.0:80->80/tcpdocker-nginx
後續可按照nginx的政策使用方式進行操作。