Docker 初体验:Docker 部署 Nginx 负载均衡集群

开发 架构
Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。今天来为大家演示一下docker部署nginx负载均衡集群。

Docker 是一个用于开发,交付和运行应用程序的开放平台。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。今天来为大家演示一下docker部署nginx负载均衡集群。

环 境

centos7

安装Docker

移除旧版本Docker

[root@chaols ~]#  sudo yum remove docker \
> docker-client \
> docker-client-latest \
> docker-common \
> docker-latest \
> docker-latest-logrotate \
> docker-logrotate \
> docker-engine

安装yum-utils包并设置稳定存储库

[root@chaols ~]# yum install -y yum-utils

安装Docker

[root@chaols ~]# yum install docker-ce docker-ce-cli containerd.io

启动Docker

[root@chaols ~]# systemctl start docker

查看Docker镜像

刚刚安装docker是没有镜像的

[root@chaols ~]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE

下载Nginx镜像

[root@chaols ~]# docker pull nginx

本地创建3个Nginx目录

[root@chaols nginx]# pwd
/home/nginx
[root@chaols nginx]# ls
nginx01 nginx02 nginx03
[root@chaols nginx]# ls nginx01/ && ls nginx02 && ls nginx03
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params
conf.d fastcgi_params mime.types modules nginx.conf scgi_params uwsgi_params

创建网络

docker network create --driver bridge --subnet 172.16.0.0/16 --gateway 172.16.0.1 mynet

chao_nginx01配置文件

[root@chaols ~]# cat /home/nginx/nginx01/conf.d/default.conf 
upstream chao_test {
server 172.16.0.2 weight=5;
server 172.16.0.3 weight=5;
}
server {
listen 80;
listen [::]:80;
server_name localhost;

#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://chao_test;
}

chao_nginx02、chao_nginx03配置文件相同

[root@chaols ~]# cat /home/nginx/nginx02/conf.d/default.conf 
server {
listen 80;
listen [::]:80;
server_name localhost;

#access_log /var/log/nginx/host.access.log main;

location / {
root /usr/share/nginx/html;
index index.html index.htm;
}

配置页面展示

chao_nginx02

[root@chaols ~]# cat /home/html02/index.html 
02020202020202
chao_nginx03
[root@chaols ~]# cat /home/html03/index.html
030303030303

创建虚拟机

-d 后台运行 --name 指定名字 --net 指定刚刚创建的网络 -p 指定宿主机的映射端口 -v 指定和宿主机共享的目录 nginx 镜像名称

[root@chaols ~]# docker run  -d --name chao_nginx01 --net mynet -p 8001:80 -v /home/nginx/nginx01:/etc/nginx -v /home/html01/:/usr/share/nginx/html nginx
bf4a1a593e0908e383ade9f0b893a324e3f95cb251844c58a352f4d070ed253d
[root@chaols ~]# docker run -d --name chao_nginx02 --net mynet -p 8002:80 -v /home/nginx/nginx02:/etc/nginx -v /home/html02/:/usr/share/nginx/html nginx
6177bb3461b8e8e912eacef161b3619d612e1e51136b324aacd6e888ec805b23
[root@chaols ~]# docker run -d --name chao_nginx03 --net mynet -p 8003:80 -v /home/nginx/nginx03:/etc/nginx -v /home/html03/:/usr/share/nginx/html nginx
abbef89fc891d06de4b055a316eb11c4a938e2033b15ce1528acb858643df8fd

验证

访问chao_nginx01:172.16.0.2循环显示chao_nginx02:172.16.0.3、chao_nginx03:172.16.0.4的页面

[root@chaols ~]# curl 172.16.0.2
030303030303
[root@chaols ~]# curl 172.16.0.2
02020202020202
[root@chaols ~]# curl 172.16.0.2
030303030303
[root@chaols ~]# curl 172.16.0.2
02020202020202
[root@chaols ~]# curl 172.16.0.2
030303030303
[root@chaols ~]# curl 172.16.0.2
02020202020202
[root@chaols ~]# curl 172.16.0.2
030303030303
[root@chaols ~]# curl 172.16.0.2
02020202020202


责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2021-09-02 07:04:45

Docker镜像语言

2019-12-24 14:28:00

KeepalivedNginxTomcat

2014-11-11 15:30:46

DockerRails集群Ruby

2017-09-19 15:55:04

Docker入门实践

2015-06-05 11:26:58

nginx运维

2017-09-25 07:58:20

DockerNet Core2.0均衡

2012-07-31 09:25:42

nginx负载均衡反向代理

2013-04-22 11:29:14

Nginx

2010-05-06 15:00:58

集群负载均衡

2022-08-31 08:30:32

kubernetesMetalLB

2017-03-31 14:25:19

手动docker swar集群

2024-10-28 15:40:26

2012-04-02 15:43:45

nginxtomcat

2019-09-19 09:03:13

Docker负载均衡服务

2012-05-07 10:20:12

LVS集群

2015-09-06 09:53:41

DockerWeave

2017-05-04 09:01:45

达观数据Docker部署

2023-03-06 21:19:19

2011-12-02 22:51:46

Nginx负载均衡

2010-05-07 12:23:23

nginx负载均衡
点赞
收藏

51CTO技术栈公众号