亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Docker Compose開啟nginx

發布時間:2020-06-06 13:35:27 來源:億速云 閱讀:568 作者:Leah 欄目:云計算

如何利用Docker Compose開啟nginx?相信大部分人都還沒學會這個技能,為了讓大家學會,給大家總結了以下內容,話不多說,一起往下看吧。

Docker Compose配置常用字段

build dockerfile context 指定Dockerfile文件名構建鏡像上下文路徑
image   指定鏡像
command  執行命令,覆蓋默認命令
container name  指定容器名稱,由于容器名稱是唯一的,如果指定自定義名稱,則無法scale
deploy 指定部署和運行服務相關配置,只能在swarm模式使用
environment  添加環境變量
networks  加入網絡
ports  暴露容器端口,但端口不能低于60
volumes  掛載宿主機或命令卷,像數據卷一樣
restart  重啟策略
hostname 容器主機名

Docer Compose常用命令

build  重新構建服務
ps  列出容器
up  創建和啟動容器
exec  在容器里面執行命令
scale  指定一個服務容器啟動數量
top 顯示容器進程
logs 查看容器輸出
down  刪除容器,網絡,數據卷和鏡像
stop/start/restart 停止/啟動/重啟服務

Compose 命令說明

docker-compose選項
--verbose 輸出更多調試信息
--version 打印版本并退出
-f,--file 使用特定的compose模板文件,默認為docker-compose.yml
-p,指定項目名稱,默認使用目錄名稱

Consul

Consul是HashCorp公司推出得到開源工具,用于實現分布式系統的服務與配置
Consul的特性
Consul支持健康檢查,允許存儲鍵值對
一致性協議采用Raft算法,用來保證服務的高可用
成員管理和消息廣播采用GOSSIP協議,支持ACL訪問控制列表,與docker無縫配合

構建自動發現的Docker服務架構

建立Consul服務

每個提供服務的節點上都要部署Consul的agent
Consul agent有兩種運行模式
Server
Client
Server和Client只是Conusl集群層面的區分,與搭建在Cluster之上的應用服務無關

consul群集架構,發現注冊nginx中的docker容器,監控節點服務器的狀態。
consul server服務器中的nginx做反向代理去輪詢訪問服務器池中的一個個容器。用戶訪問代理端口,就能訪問到后面的多個容器,我們的端口做了兩次映射。consul服務器上可以統一修改配置文件
如何利用Docker Compose開啟nginx

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

#宿主機的共享目錄有nginx軟件包,我們掛載到/opt/目錄下
mount.cifs //192.168.100.25/LNMP /opt/
#創建容器編排目錄
mkdir /root/compose_ngin
#創建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啟動腳本
vim run.sh 
#!/bin/bash
/usr/local/nginx/sbin/nginx

[root@localhost nginx]# vim Dockerfile
FROM centos:7
MAINTAINER this is nginx <chen>
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"]

編寫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 

#開啟路由轉發
[root@localhost compose_nginx]# vim /etc/sysctl.conf
net.ipv4.ip_forward=1[root@localhost compose_nginx]# sysctl -p
net.ipv4.ip_forward = 1

利用編排工具開啟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

我們做了數據卷我們寫個默認首頁進去

[root@localhost compose_nginx]# ls
docker-compose.yml  nginx  wwwroot
[root@localhost compose_nginx]# cd wwwroot/
[root@localhost wwwroot]# vim index.html
<h2>this is chen web ! ! !</h2>

如何利用Docker Compose開啟nginx

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

自動發現注冊多個docker容器節點,要想被consul管理,就要去注冊,滿足搜索條件agent就會提交注冊請求,consul server自動發現去處理注冊請求,監控容器的狀態,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功能
#參與領袖
#ui界面
#參數指定位置
#綁定本地地址
#面對所有節點
#本地節點名稱混合輸出到日志中,放在后臺運行
> -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
#現在只有一臺,它就是老大
[root@localhost consul]# consul info | grep leader
        leader = true
        leader_addr = 192.168.136.142:8300

第二臺節點服務器(創建多個容器)容器服務自動加入nginx集群

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

#兩個nginx服務容器
[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
#兩個apache服務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

驗證http和nginx服務是否注冊到consul

如何利用Docker Compose開啟nginx

consul服務器

Consul-Templatee 是一個守護進程,用于實時查詢Consul集群信息,并更新文件系統上
任意數量的指定模板,生成配置文件。更新完成以后,可以選擇運行shell命令執行更新操作,重新加載nginx,Consul-template
可以查詢Consul中的服務目錄,key,key-values等
這種強大的抽象功能和查詢語言模板可以使Consul-template特別適合動態的創建配置文件
[root@localhost ~]# cd /root/
[root@localhost ~]# ls
anaconda-ks.cfg  compose_nginx  initial-setup-ks.cfg  公共  文檔  模板  音樂
chen             consul         下載                  圖片  桌面  視頻
[root@localhost ~]# cd consul/
[root@localhost consul]# ls
consul_0.9.2_linux_amd64.zip
[root@localhost consul]# 
#準備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服務器處于監控狀態,我們再開一臺終端同一臺服務器的

#驗證
如何利用Docker Compose開啟nginx

#增加一個nginx容器節點
增加一個nginx容器節點,測試服務發現及配置更新功能
//在registrator服務端注冊
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開啟nginx的方法介紹,詳細使用情況還得要大家自己使用過才能知道具體要領。如果想閱讀更多相關內容的文章,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

孟连| 社旗县| 陇西县| 岳普湖县| 广饶县| 都兰县| 河池市| 台北县| 许昌市| 广州市| 丰宁| 吐鲁番市| 图们市| 板桥市| 裕民县| 承德县| 宜黄县| 徐汇区| 淮北市| 华容县| 苏尼特左旗| 东山县| 天津市| 墨竹工卡县| 吴桥县| 武邑县| 饶平县| 温州市| 云林县| 台前县| 墨江| 徐汇区| 丘北县| 齐河县| 内丘县| 瑞丽市| 宣城市| 洱源县| 吴桥县| 当涂县| 保康县|