ubuntu16 创建docker
由于apt官方库里的docker版本可能比较旧,所以先卸载可能存在的旧版本:
<pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get remove docker docker-engine docker-ce docker.io
更新apt包索引: <pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get update
安装以下包以使apt可以通过HTTPS使用存储库(repository):
<pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common
添加Docker官方的GPG密钥: <pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
使用下面的命令来设置<span style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-weight: 700;">stable</span>存储库:
<pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
再更新一下apt包索引: <pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get update
安装最新版本的Docker CE:
<pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get install -y docker-ce
在生产系统上,可能会需要应该安装一个特定版本的Docker CE,而不是总是使用最新版本: <p style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255);">列出可用的版本: </p><pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ apt-cache madison docker-ce
<p style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 16px; padding: 0px; color: rgb(79, 79, 79); line-height: 26px; overflow-x: auto; overflow-wrap: break-word; font-family: -apple-system, "SF UI Text", Arial, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255);"><img alt="白俊遥博客" src="https://img-blog.csdn.net/2018030114340657?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQmluZ1pob25nRGVIdW9ZYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70" style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word; cursor: zoom-in; border: 0px;" title="白俊遥博客"></img><br style="box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word;"></br>选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:
</p><pre class="prettyprint" name="code" style="box-sizing: border-box; outline: 0px; margin-top: 0px; margin-bottom: 24px; padding: 8px 16px 4px 56px; position: relative; overflow: auto hidden; white-space: pre-wrap; overflow-wrap: break-word; font-family: Consolas, Inconsolata, Courier, monospace; font-size: 14px; line-height: 22px; background-color: rgb(246, 248, 250); border: none;">$ sudo apt-get install docker-ce=<VERSION>
安装好后建立mysql集群 1.安装pxc镜像
2.创建net网络形成内部通信<br></br>
docker network create --subnet=172.18.0.0/24 net1
3.创建Docker卷(容器中的PXC节点映射数据目录)
docker volume create v1
多节点就创建多个卷 名字改为v2,v3等 4.创建PXC容器 <span style="color: rgb(255, 0, 0);">创建第一个节点,必须等这个服务起来后才能进行下面节点的创建(密码可以修改)</span>
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ab123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=ab123456 -v v1:/var/lib/mysql --privileged --name=node1 --net=net1 --ip 172.18.0.2 pxc
创建第二节点<br></br>
docker run -d -p 3307:3306 -e MYSQL_ROOT_PASSWORD=ab123456 -e CLUSTER_NAME=PXC -e XTRABACKUP_PASSWORD=ab123456 -e CLUSTER_JOIN=node1 -v v2:/var/lib/mysql --privileged --name=node2 --net=net1 --ip 172.18.0.3 pxc
<span style="color: rgb(255, 0, 0);"><strong>注意两个区别(CLUSTER_JOIN 映射端口3307 v2 node2 ip不同)</strong></span><br></br> <span style="color: rgb(255, 0, 0);"><strong><span style="color: rgb(0, 0, 0);">创建第三个第四个依次注意端口和ip 名字等。</span></strong></span> <span style="color: rgb(255, 0, 0);"><strong><span style="color: rgb(0, 0, 0);"><br></br></span></strong></span> <span style="color: rgb(255, 0, 0);"><strong><span style="color: rgb(0, 0, 0);"><br></br></span></strong></span> <span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">建立haproxy的负载均衡<br></br></span></span> 安装haproxy镜像
docker pull haproxy
<span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">创建haproxy配置文件<br></br></span></span>
global
#工作目录
chroot /usr/local/etc/haproxy
#日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
log 127.0.0.1 local5 info
#守护进程运行
daemon
defaults
log global
mode http
#日志格式
option httplog
#日志中不记录负载均衡的心跳检测记录
option dontlognull
#连接超时(毫秒)
timeout connect 5000
#客户端超时(毫秒)
timeout client 50000
#服务器超时(毫秒)
timeout server 50000
#监控界面
listen admin_stats
#监控界面的访问的IP和端口
bind 0.0.0.0:8888
#访问协议
mode http
#URI相对地址
stats uri /dbs
#统计报告格式
stats realm Global\ statistics
#登陆帐户信息
stats auth admin:abc123456
#数据库负载均衡
listen proxy-mysql
#访问的IP和端口
bind 0.0.0.0:3306
#网络协议
mode tcp
#负载均衡算法(轮询算法)
#轮询算法:roundrobin
#权重算法:static-rr
#最少连接算法:leastconn
#请求源IP算法:source
balance roundrobin
#日志格式
option tcplog
#在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
option mysql-check user haproxy
server MySQL_1 172.18.0.2:3306 check weight 1 maxconn 2000
server MySQL_2 172.18.0.3:3306 check weight 1 maxconn 2000
server MySQL_3 172.18.0.4:3306 check weight 1 maxconn 2000
server MySQL_4 172.18.0.5:3306 check weight 1 maxconn 2000
#server MySQL_5 172.18.0.6:3306 check weight 1 maxconn 2000
#使用keepalive检测死链
option tcpka
<span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"></span></span>创建haproxy容器<br></br>
docker run -it -d -p 4002:8888 -p 4003:3306 -v /home/soft/haproxy2:/usr/local/etc/haproxy --name h1 --privileged --net=net1 --ip 172.18.0.8 haproxy
建立keepalived 第一步需要进入创建的容器中安装keepalived<br></br>
docker exec -it h1 bash
运行安装keepalived<br></br>
apt-get update
apt-get install keepalived
设置配置文件<br></br>
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
172.18.0.201
}
}
本文为wjw原创文章,转载无需和我联系,但请注明来自wjw博客http://wjiawen.cn
最新评论