真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何利用DockerCompose開(kāi)啟nginx

如何利用Docker Compose開(kāi)啟nginx?相信大部分人都還沒(méi)學(xué)會(huì)這個(gè)技能,為了讓大家學(xué)會(huì),給大家總結(jié)了以下內(nèi)容,話不多說(shuō),一起往下看吧。

創(chuàng)新互聯(lián)專(zhuān)注于資陽(yáng)網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供資陽(yáng)營(yíng)銷(xiāo)型網(wǎng)站建設(shè),資陽(yáng)網(wǎng)站制作、資陽(yáng)網(wǎng)頁(yè)設(shè)計(jì)、資陽(yáng)網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造資陽(yáng)網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供資陽(yáng)網(wǎng)站排名全網(wǎng)營(yíng)銷(xiāo)落地服務(wù)。

Docker Compose配置常用字段

build dockerfile context 指定Dockerfile文件名構(gòu)建鏡像上下文路徑
image   指定鏡像
command  執(zhí)行命令,覆蓋默認(rèn)命令
container name  指定容器名稱(chēng),由于容器名稱(chēng)是唯一的,如果指定自定義名稱(chēng),則無(wú)法scale
deploy 指定部署和運(yùn)行服務(wù)相關(guān)配置,只能在swarm模式使用
environment  添加環(huán)境變量
networks  加入網(wǎng)絡(luò)
ports  暴露容器端口,但端口不能低于60
volumes  掛載宿主機(jī)或命令卷,像數(shù)據(jù)卷一樣
restart  重啟策略
hostname 容器主機(jī)名

Docer Compose常用命令

build  重新構(gòu)建服務(wù)
ps  列出容器
up  創(chuàng)建和啟動(dòng)容器
exec  在容器里面執(zhí)行命令
scale  指定一個(gè)服務(wù)容器啟動(dòng)數(shù)量
top 顯示容器進(jìn)程
logs 查看容器輸出
down  刪除容器,網(wǎng)絡(luò),數(shù)據(jù)卷和鏡像
stop/start/restart 停止/啟動(dòng)/重啟服務(wù)

Compose 命令說(shuō)明

docker-compose選項(xiàng)
--verbose 輸出更多調(diào)試信息
--version 打印版本并退出
-f,--file 使用特定的compose模板文件,默認(rèn)為docker-compose.yml
-p,指定項(xiàng)目名稱(chēng),默認(rèn)使用目錄名稱(chēng)

Consul

Consul是HashCorp公司推出得到開(kāi)源工具,用于實(shí)現(xiàn)分布式系統(tǒng)的服務(wù)與配置
Consul的特性
Consul支持健康檢查,允許存儲(chǔ)鍵值對(duì)
一致性協(xié)議采用Raft算法,用來(lái)保證服務(wù)的高可用
成員管理和消息廣播采用GOSSIP協(xié)議,支持ACL訪問(wèn)控制列表,與docker無(wú)縫配合

構(gòu)建自動(dòng)發(fā)現(xiàn)的Docker服務(wù)架構(gòu)

建立Consul服務(wù)

每個(gè)提供服務(wù)的節(jié)點(diǎn)上都要部署Consul的agent
Consul agent有兩種運(yùn)行模式
Server
Client
Server和Client只是Conusl集群層面的區(qū)分,與搭建在Cluster之上的應(yīng)用服務(wù)無(wú)關(guān)

consul群集架構(gòu),發(fā)現(xiàn)注冊(cè)nginx中的docker容器,監(jiān)控節(jié)點(diǎn)服務(wù)器的狀態(tài)。
consul server服務(wù)器中的nginx做反向代理去輪詢?cè)L問(wèn)服務(wù)器池中的一個(gè)個(gè)容器。用戶訪問(wèn)代理端口,就能訪問(wèn)到后面的多個(gè)容器,我們的端口做了兩次映射。consul服務(wù)器上可以統(tǒng)一修改配置文件
如何利用Docker Compose開(kāi)啟nginx

-----------------------------------------------------docker-compose容器編排----------------------------------------------------------------

#宿主機(jī)的共享目錄有nginx軟件包,我們掛載到/opt/目錄下
mount.cifs //192.168.100.25/LNMP /opt/
#創(chuàng)建容器編排目錄
mkdir /root/compose_ngin
#創(chuàng)建nginx容器鏡像
cd compose_nginx/

mkdir nginx

cd nginx/

cd /opt/

cp nginx-1.12.0.tar.gz /root/compose_nginx/nginx/

cd /root/compose_nginx/nginx/

#加上nginx啟動(dòng)腳本
vim run.sh 
#!/bin/bash
/usr/local/nginx/sbin/nginx

[root@localhost nginx]# vim Dockerfile
FROM centos:7
MAINTAINER this is nginx 
RUN yum -y update
RUN yum -y install wget pcre-devel zlib-devel make zlib gcc gcc-c++ openssl-devel net-tools
RUN useradd -M -s /sbin/nologin nginx
ADD nginx-1.12.0.tar.gz /usr/local/src
WORKDIR /usr/local/src
WORKDIR nginx-1.12.0
RUN ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
ENV PATH /usr/local/nginx/sbin:$PATH
EXPOSE 80
EXPOSE 443
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
WORKDIR /root/nginx
ADD run.sh /run.sh
RUN chmod 755 /run.sh
CMD ["/run.sh"]

編寫(xiě)docker-compose編排安裝nginx

[root@localhost compose_nginx]# vim docker-compose.yml
version: '3'
services:
  nginx:
    hostname: nginx
    build:
      context: ./nginx
      dockerfile: Dockerfile
    ports:
      - 1216:80
      - 1217:443
    networks:
      - chen
    volumes:
      - ./wwwroot:/usr/local/nginx/html
networks:
  chen:

[root@localhost compose_nginx]# mount.cifs //192.168.100.25/compose /mnt/
Password for root@//192.168.100.25/compose:   
[root@localhost compose_nginx]# cd /mnt/
[root@localhost mnt]# ls
consul_0.9.2_linux_amd64.zip  consul-template_0.19.3_linux_amd64.zip  docker-compose
[root@localhost mnt]# cp -p docker-compose /usr/local/bin/
[root@localhost mnt]# chmod +x /usr/local/bin/docker-compose 

#開(kāi)啟路由轉(zhuǎn)發(fā)
[root@localhost compose_nginx]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1[root@localhost compose_nginx]# sysctl -p
net.ipv4.ip_forward = 1

利用編排工具開(kāi)啟nginx

[root@localhost compose_nginx]# docker-compose -f docker-compose.yml up -d

[root@localhost compose_nginx]# docker ps -a
CONTAINER ID        IMAGE                 COMMAND             CREATED             STATUS              PORTS                                         NAMES
66d7cee5692d        compose_nginx_nginx   "/run.sh"           11 seconds ago      Up 9 seconds        0.0.0.0:1216->80/tcp, 0.0.0.0:1217->443/tcp   compose_nginx_nginx_1

我們做了數(shù)據(jù)卷我們寫(xiě)個(gè)默認(rèn)首頁(yè)進(jìn)去

[root@localhost compose_nginx]# ls
docker-compose.yml  nginx  wwwroot
[root@localhost compose_nginx]# cd wwwroot/
[root@localhost wwwroot]# vim index.html

this is chen web ! ! !

如何利用Docker Compose開(kāi)啟nginx

-------------------------------------------------------------------consul部署----------------------------------------------------------------------

自動(dòng)發(fā)現(xiàn)注冊(cè)多個(gè)docker容器節(jié)點(diǎn),要想被consul管理,就要去注冊(cè),滿足搜索條件agent就會(huì)提交注冊(cè)請(qǐng)求,consul server自動(dòng)發(fā)現(xiàn)去處理注冊(cè)請(qǐng)求,監(jiān)控容器的狀態(tài),template模板

[root@localhost ~]# mkdir consul
[root@localhost ~]# cd /mnt/
[root@localhost mnt]# ls
consul_0.9.2_linux_amd64.zip  consul-template_0.19.3_linux_amd64.zip  docker-compose

[root@localhost mnt]# cp consul_0.9.2_linux_amd64.zip /root/consul/
[root@localhost mnt]# cd /root/consul/
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# unzip consul_0.9.2_linux_amd64.zip 
Archive:  consul_0.9.2_linux_amd64.zip
  inflating: consul              

[root@localhost consul]# mv consul /usr/bin/

#使用conusl agent代理功能
[root@localhost consul]# consul agent \
#指定server功能
#參與領(lǐng)袖
#ui界面
#參數(shù)指定位置
#綁定本地地址
#面對(duì)所有節(jié)點(diǎn)
#本地節(jié)點(diǎn)名稱(chēng)混合輸出到日志中,放在后臺(tái)運(yùn)行
> -server \
> -bootstrap \
> -ui \
> -data-dir=/var/lib/consul-data \
> -bind=192.168.136.142 \
> -client=0.0.0.0 \
> -node=consul-server01 &> /var/log/consul.log &
[1] 37957

#查看群集信息
[root@localhost consul]# consul members
Node             Address               Status  Type    Build  Protocol  DC
consul-server01  192.168.136.142:8301  alive   server  0.9.2  2         dc1
#現(xiàn)在只有一臺(tái),它就是老大
[root@localhost consul]# consul info | grep leader
        leader = true
        leader_addr = 192.168.136.142:8300

第二臺(tái)節(jié)點(diǎn)服務(wù)器(創(chuàng)建多個(gè)容器)容器服務(wù)自動(dòng)加入nginx集群

[root@localhost ~]# docker run -d \
> --name=registrator \ #指定容器名稱(chēng)
> --net=host \  #指定主機(jī)
> -v /var/run/docker.sock:/tmp/docker.sock \ #指定數(shù)據(jù)卷宿主機(jī)目錄,容器目錄
> --restart=always \ #重啟
> gliderlabs/registrator:latest \ #指定本地的鏡像
> -ip=192.168.136.167 \ #指定你本地的地址
> consul://192.168.136.142:8500 #指定consul的地址

#兩個(gè)nginx服務(wù)容器
[root@localhost ~]# docker run -itd -p:83:80 --name test-01 -h test01 nginx
root@localhost ~]# docker run -itd -p:84:80 --name test-02 -h test02 nginx
#兩個(gè)apache服務(wù)5容器
[root@localhost ~]# docker run -itd -p:88:80 --name test-03 -h test02 httpd
[root@localhost ~]# docker run -itd -p:89:80 --name test-04 -h test04 httpd
#查看所有容器
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                           COMMAND                  CREATED              STATUS              PORTS                NAMES
00a94fe6fd0c        httpd                           "httpd-foreground"       6 seconds ago        Up 5 seconds        0.0.0.0:89->80/tcp   test-04
b47b89287e43        httpd                           "httpd-foreground"       38 seconds ago       Up 37 seconds       0.0.0.0:88->80/tcp   test-03
9b695e1d8660        nginx                           "nginx -g 'daemon of…"   About a minute ago   Up About a minute   0.0.0.0:84->80/tcp   test-02
3cbf17118dab        nginx                           "nginx -g 'daemon of…"   2 minutes ago        Up 2 minutes        0.0.0.0:83->80/tcp   test-01
055caf398060        gliderlabs/registrator:latest   "/bin/registrator -i…"   3 minutes ago        Up 3 minutes                             registrator

驗(yàn)證http和nginx服務(wù)是否注冊(cè)到consul

如何利用Docker Compose開(kāi)啟nginx

consul服務(wù)器

Consul-Templatee 是一個(gè)守護(hù)進(jìn)程,用于實(shí)時(shí)查詢Consul集群信息,并更新文件系統(tǒng)上
任意數(shù)量的指定模板,生成配置文件。更新完成以后,可以選擇運(yùn)行shell命令執(zhí)行更新操作,重新加載nginx,Consul-template
可以查詢Consul中的服務(wù)目錄,key,key-values等
這種強(qiáng)大的抽象功能和查詢語(yǔ)言模板可以使Consul-template特別適合動(dòng)態(tài)的創(chuàng)建配置文件
[root@localhost ~]# cd /root/
[root@localhost ~]# ls
anaconda-ks.cfg  compose_nginx  initial-setup-ks.cfg  公共  文檔  模板  音樂(lè)
chen             consul         下載                  圖片  桌面  視頻
[root@localhost ~]# cd consul/
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# 
#準(zhǔn)備temlate nginx 模板文件

[root@localhost consul]# vim nginx.ctmpl
upstream http_backend {
  {{range service "nginx"}}
   server {{.Address}}:{{.port}};
   {{end}}
}

server {
  listen 1216;
  server_name localhost 192.168.136.167;
  access_log /var/log/nginx/kgc.cn-access.log;
  index index.html index.php;
  location / {
    proxy_set_header HOST $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Client-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://http_backend;
  }
}

#安裝nginx
[root@localhost nginx-1.12.0]# yum install gcc gcc-c++ pcre-devel zlib-devel -y
[root@localhost nginx-1.12.0]# ./configure --prefix=/usr/local/nginx

[root@localhost nginx-1.12.0]# make && make install
[root@localhost nginx-1.12.0]# vim /usr/local/nginx/conf/nginx.conf
#nginx中有events,http,if,location,字段
 19     include     vhost/*.conf;
[root@localhost nginx-1.12.0]# cd /usr/local/nginx/conf/
[root@localhost conf]# mkdir vhost
[root@localhost consul]# cd /var/log/
[root@localhost log]# mkdir /var/log/nginx
[root@localhost log]# ln -s /usr/local/nginx/sbin/nginx  /usr/local/sbin/
[root@localhost log]# nginx
[root@localhost log]# netstat -ntap | grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      107612/nginx: ma
[root@localhost opt]# cd /mnt/
[root@localhost mnt]# cp consul-template_0.19.3_linux_amd64.zip /root/
[root@localhost mnt]# cd /root/

[root@localhost ~]# unzip consul-template_0.19.3_linux_amd64.zip 
[root@localhost ~]# mv consul-template /usr/bin/

#啟用模板
[root@localhost ~]# consul-template -consul-addr 192.168.136.142:8500 \
> -template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
> --log-level=info

#coul服務(wù)器處于監(jiān)控狀態(tài),我們?cè)匍_(kāi)一臺(tái)終端同一臺(tái)服務(wù)器的

#驗(yàn)證
如何利用Docker Compose開(kāi)啟nginx

#增加一個(gè)nginx容器節(jié)點(diǎn)
增加一個(gè)nginx容器節(jié)點(diǎn),測(cè)試服務(wù)發(fā)現(xiàn)及配置更新功能
//在registrator服務(wù)端注冊(cè)
dockers run -itd -p:85:80 --name test-05 -h test05 nginx
docker logs -f test-01
docker logs -f test-02
docker logs -f test-05

以上就是用Docker Compose開(kāi)啟nginx的方法介紹,詳細(xì)使用情況還得要大家自己使用過(guò)才能知道具體要領(lǐng)。如果想閱讀更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!


分享題目:如何利用DockerCompose開(kāi)啟nginx
網(wǎng)頁(yè)路徑:http://weahome.cn/article/jhpsoc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部