文章目录

  • 一、新增一个名称为bridge2的bridge模式网络,网段为172.22.0.0/16,创建一个容器用bridge2网络运行,要求能用宿主机网络访问。
  • 二、创建一个harbor镜像仓库,把镜像上传到harbor仓库并能从里面下载镜像创建容器。
  • 1.上传harbor包解压到/apps/目录,修改harbor.yml,执行安装./install.sh 脚本
  • 2.添加host解析,浏览器访问harbor,并创建一个项目
  • 3.上传镜像
  • 4.下载镜像
  • 三、用haproxy实现两个web服务器的负载均衡。
  • 1.安装proxy
  • 2. 配置web服务器和haproxy
  • 3.验证


一、新增一个名称为bridge2的bridge模式网络,网段为172.22.0.0/16,创建一个容器用bridge2网络运行,要求能用宿主机网络访问。

创建自定义网络,创建后使用ip a 可以查看

docker network  create -d bridge --subnet 172.22.0.0/16 --gateway 172.22.0.1  bridge2

docker network 查看network ip子网 查看docker网络配置_上传

** 查看创建的网络,使用创建的网络运行wordpress容器**

docker network inspect  bridge2
docker run -itd -p 2222:80  --network bridge2 --name wordpress2 -v /data/wordpress2:/var/www/html    1730fea0ae8e

docker network 查看network ip子网 查看docker网络配置_运维_02

查看容器ip,宿主机可以ping通

docker inspect c2f57e874301 |grep -i ipaddr

docker network 查看network ip子网 查看docker网络配置_mysql_03


docker network 查看network ip子网 查看docker网络配置_容器_04

** 运行msyql容器,使用wordpress容器网络**

docker run --network container:c2f57e874301 -e MYSQL_ROOT_PASSWORD=123456 -e MYSQL_DATABASE=wordpress -e MYSQL_USER=wordpress -e MYSQL_PASSWORD=123456 --name mysql2 -d -v /data/mysql:/var/lib/mysql --restart=always mysql:8.0.29-oracle

浏览器访问安装成功

docker network 查看network ip子网 查看docker网络配置_容器_05


docker network 查看network ip子网 查看docker网络配置_docker_06

二、创建一个harbor镜像仓库,把镜像上传到harbor仓库并能从里面下载镜像创建容器。

1.上传harbor包解压到/apps/目录,修改harbor.yml,执行安装./install.sh 脚本

docker network 查看network ip子网 查看docker网络配置_运维_07


./install.sh

2.添加host解析,浏览器访问harbor,并创建一个项目

docker network 查看network ip子网 查看docker网络配置_上传_08

3.上传镜像

修改/etc/docker/daemon.json文件,添加insecure-registries选项

cat /etc/docker/daemon.json 
{
"registry-mirrors":["https://2abfrd78.mirror.aliyuncs.com"],
"insecure-registries": ["luohw.harbor.org"]
}

harbor没有配置https,登录harbor会提示Login did not succeed, error: Error response from daemon: Get “https://luohw.harbor.org/v2/”: dial tcp 192.168.1.153:443: connect: connection refused
在/etc/docker/daemon.json 配置insecure-registries 即可

配置hosts,登录harbor

vi /etc/hosts
192.168.1.153 luohw.harbor.org

docker network 查看network ip子网 查看docker网络配置_运维_09


修改镜像tag,并上传

docker tag eb4a57159180  luohw.harbor.org/images/nginx:latest
docker push  luohw.harbor.org/images/nginx:latest

docker network 查看network ip子网 查看docker网络配置_上传_10


查看镜像上传成功

docker network 查看network ip子网 查看docker网络配置_上传_11

4.下载镜像

在其他机器上配置hosts和insecure-registries,下载镜像并运行容器

docker login  luohw.harbor.org
docker pull luohw.harbor.org/images/nginx:latest
docker images
docker run -itd luohw.harbor.org/images/nginx:latest bash

docker network 查看network ip子网 查看docker网络配置_上传_12

三、用haproxy实现两个web服务器的负载均衡。

1.安装proxy

apt install haproxy -y

2. 配置web服务器和haproxy

配置二个web网站,分别是192.168.1.152:89和192.168.1.80:80 ,修改默认页面,修改haproxy配置文件并重启haproxy

listen stats
    mode http
    bind 0.0.0.0:9990
    stats enable
    log global
    stats uri /haproxy-status
    stats auth admin:123456
    stats admin if TRUE

listen  web
        bind  192.168.74.128:88
        mode http
        server web1     192.168.1.152:89  check inter 3000 fall 3 rise 5;
        server web2     192.168.1.80:80 check inter 3000 fall 3 rise 5;

listen  web2
        bind  192.168.1.153:88
        mode http
        server web1     192.168.1.152:89  check inter 3000 fall 3 rise 5;
        server web2     192.168.1.80:80   check inter 3000 fall 3 rise 5;
listen  web10
        log global
        option httplog
        capture request header Host len 256
        capture request header User-Agent len 512
        capture request header Referer len 15
        capture request header X-Forwarded-For len 15
        bind  172.22.77.50:5555
        mode http
        #balance source 
        balance url_param key   #负载均衡的ne'xi
        option forwardfor  header X-client
        #http-request del-header user-agent
        #http-request add-header user-agent test-browser

        compression algo gzip deflate   #启用压缩机制
        compression type text/html text/css text/plain       #压缩哪些类型文件
        hash-type consistent #一致性hash
        #cookie  n80-cookie  insert indirect nocache 
        option httpchk HEAD /index.html   HTTP/1.1\nHost:\ 101.201.116.250  #七层健康检测
        #acl 配置acl
        acl bad_agent hdr_sub(User-Agent) -i curl   #定义名称为bad_agent head的uri模糊匹配
        acl danger_src src 101.201.116.250     #来源是这个ip
        http-request deny if bad_agent  danger_src #满足上面二个任意一个acl,拒绝

        server web1    172.22.77.50:5551  check  weight 1 inter 3000 fall 3 rise 5;
        server web2    172.22.77.50:5552  check  weight 2 inter 3000 fall 3 rise 5;

3.验证

通过curl 可以访问到到不同的网站

docker network 查看network ip子网 查看docker网络配置_mysql_13