docker 学习笔记

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):
&lt;pre class=&quot;prettyprint&quot; name=&quot;code&quot; style=&quot;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;&quot;&gt;$&nbsp;sudo&nbsp;apt-get&nbsp;install&nbsp;-y&nbsp;apt-transport-https&nbsp;ca-certificates&nbsp;curl&nbsp;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 -

使用下面的命令来设置&lt;span style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word; font-weight: 700;&quot;&gt;stable&lt;/span&gt;存储库:
&lt;pre class=&quot;prettyprint&quot; name=&quot;code&quot; style=&quot;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;&quot;&gt;$&nbsp;sudo&nbsp;add-apt-repository&nbsp;&quot;deb&nbsp;[arch=amd64]&nbsp;https://download.docker.com/linux/ubuntu&nbsp;$(lsb_release&nbsp;-cs)&nbsp;stable&quot;

再更新一下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:
&lt;pre class=&quot;prettyprint&quot; name=&quot;code&quot; style=&quot;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;&quot;&gt;$&nbsp;sudo&nbsp;apt-get&nbsp;install&nbsp;-y&nbsp;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

&lt;p style=&quot;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, &quot;SF UI Text&quot;, Arial, &quot;PingFang SC&quot;, &quot;Hiragino Sans GB&quot;, &quot;Microsoft YaHei&quot;, &quot;WenQuanYi Micro Hei&quot;, sans-serif, SimHei, SimSun; white-space: normal; background-color: rgb(255, 255, 255);&quot;&gt;&lt;img alt=&quot;白俊遥博客&quot; src=&quot;https://img-blog.csdn.net/2018030114340657?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvQmluZ1pob25nRGVIdW9ZYW4=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70&quot; style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; max-width: 100%; overflow-wrap: break-word; cursor: zoom-in; border: 0px;&quot; title=&quot;白俊遥博客&quot;&gt;&lt;/img&gt;&lt;br style=&quot;box-sizing: border-box; outline: 0px; margin: 0px; padding: 0px; overflow-wrap: break-word;&quot;&gt;&lt;/br&gt;选择要安装的特定版本,第二列是版本字符串,第三列是存储库名称,它指示包来自哪个存储库,以及扩展它的稳定性级别。要安装一个特定的版本,将版本字符串附加到包名中,并通过等号(=)分隔它们:
&lt;/p&gt;&lt;pre class=&quot;prettyprint&quot; name=&quot;code&quot; style=&quot;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;&quot;&gt;$&nbsp;sudo&nbsp;apt-get&nbsp;install&nbsp;docker-ce=&lt;VERSION&gt;

安装好后建立mysql集群 1.安装pxc镜像

2.创建net网络形成内部通信<br></br>

docker&nbsp;network&nbsp;create&nbsp;--subnet=172.18.0.0/24&nbsp;net1

3.创建Docker卷(容器中的PXC节点映射数据目录)

docker&nbsp;volume&nbsp;create&nbsp;v1

多节点就创建多个卷 名字改为v2,v3等 4.创建PXC容器 <span style="color: rgb(255, 0, 0);">创建第一个节点,必须等这个服务起来后才能进行下面节点的创建(密码可以修改)</span>

docker&nbsp;run&nbsp;-d&nbsp;-p&nbsp;3306:3306&nbsp;-e&nbsp;&nbsp;MYSQL_ROOT_PASSWORD=ab123456&nbsp;-e&nbsp;CLUSTER_NAME=PXC&nbsp;-e&nbsp;XTRABACKUP_PASSWORD=ab123456&nbsp;-v&nbsp;v1:/var/lib/mysql&nbsp;--privileged&nbsp;--name=node1&nbsp;--net=net1&nbsp;--ip&nbsp;172.18.0.2&nbsp;pxc

创建第二节点<br></br>

docker&nbsp;run&nbsp;-d&nbsp;-p&nbsp;3307:3306&nbsp;-e&nbsp;&nbsp;MYSQL_ROOT_PASSWORD=ab123456&nbsp;-e&nbsp;CLUSTER_NAME=PXC&nbsp;-e&nbsp;XTRABACKUP_PASSWORD=ab123456&nbsp;-e&nbsp;CLUSTER_JOIN=node1&nbsp;-v&nbsp;v2:/var/lib/mysql&nbsp;--privileged&nbsp;--name=node2&nbsp;--net=net1&nbsp;--ip&nbsp;172.18.0.3&nbsp;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&nbsp;pull&nbsp;haproxy

<span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);">创建haproxy配置文件<br></br></span></span>

global
	#工作目录
	chroot&nbsp;/usr/local/etc/haproxy
	#日志文件,使用rsyslog服务中local5日志设备(/var/log/local5),等级info
	log&nbsp;127.0.0.1&nbsp;local5&nbsp;info
	#守护进程运行
	daemon
defaults
	log	global
	mode	http
	#日志格式
	option	httplog
	#日志中不记录负载均衡的心跳检测记录
	option	dontlognull
&nbsp;&nbsp;&nbsp;&nbsp;#连接超时(毫秒)
	timeout&nbsp;connect&nbsp;5000
&nbsp;&nbsp;&nbsp;&nbsp;#客户端超时(毫秒)
	timeout&nbsp;client&nbsp;&nbsp;50000
	#服务器超时(毫秒)
&nbsp;&nbsp;&nbsp;&nbsp;timeout&nbsp;server&nbsp;&nbsp;50000
#监控界面	
listen&nbsp;&nbsp;admin_stats
	#监控界面的访问的IP和端口
	bind&nbsp;&nbsp;0.0.0.0:8888
	#访问协议
&nbsp;&nbsp;&nbsp;&nbsp;mode&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;http
	#URI相对地址
&nbsp;&nbsp;&nbsp;&nbsp;stats&nbsp;uri&nbsp;&nbsp;&nbsp;/dbs
	#统计报告格式
&nbsp;&nbsp;&nbsp;&nbsp;stats&nbsp;realm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Global\&nbsp;statistics
	#登陆帐户信息
&nbsp;&nbsp;&nbsp;&nbsp;stats&nbsp;auth&nbsp;&nbsp;admin:abc123456
#数据库负载均衡
listen&nbsp;&nbsp;proxy-mysql
	#访问的IP和端口
	bind&nbsp;&nbsp;0.0.0.0:3306&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;#网络协议
	mode&nbsp;&nbsp;tcp
	#负载均衡算法(轮询算法)
	#轮询算法:roundrobin
	#权重算法:static-rr
	#最少连接算法:leastconn
	#请求源IP算法:source&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;balance&nbsp;&nbsp;roundrobin
	#日志格式
&nbsp;&nbsp;&nbsp;&nbsp;option&nbsp;&nbsp;tcplog
	#在MySQL中创建一个没有权限的haproxy用户,密码为空。Haproxy使用这个账户对MySQL数据库心跳检测
&nbsp;&nbsp;&nbsp;&nbsp;option&nbsp;&nbsp;mysql-check&nbsp;user&nbsp;haproxy
&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&nbsp;MySQL_1&nbsp;172.18.0.2:3306&nbsp;check&nbsp;weight&nbsp;1&nbsp;maxconn&nbsp;2000&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;server&nbsp;&nbsp;MySQL_2&nbsp;172.18.0.3:3306&nbsp;check&nbsp;weight&nbsp;1&nbsp;maxconn&nbsp;2000&nbsp;&nbsp;
	server&nbsp;&nbsp;MySQL_3&nbsp;172.18.0.4:3306&nbsp;check&nbsp;weight&nbsp;1&nbsp;maxconn&nbsp;2000&nbsp;
	server&nbsp;&nbsp;MySQL_4&nbsp;172.18.0.5:3306&nbsp;check&nbsp;weight&nbsp;1&nbsp;maxconn&nbsp;2000
	#server&nbsp;&nbsp;MySQL_5&nbsp;172.18.0.6:3306&nbsp;check&nbsp;weight&nbsp;1&nbsp;maxconn&nbsp;2000
	#使用keepalive检测死链
&nbsp;&nbsp;&nbsp;&nbsp;option&nbsp;&nbsp;tcpka

<span style="color: rgb(255, 0, 0);"><span style="color: rgb(0, 0, 0);"></span></span>创建haproxy容器<br></br>

docker&nbsp;run&nbsp;-it&nbsp;-d&nbsp;-p&nbsp;4002:8888&nbsp;-p&nbsp;4003:3306&nbsp;-v&nbsp;/home/soft/haproxy2:/usr/local/etc/haproxy&nbsp;--name&nbsp;h1&nbsp;--privileged&nbsp;--net=net1&nbsp;--ip&nbsp;172.18.0.8&nbsp;haproxy

建立keepalived 第一步需要进入创建的容器中安装keepalived<br></br>

docker&nbsp;exec&nbsp;-it&nbsp;h1&nbsp;bash

运行安装keepalived<br></br>

apt-get&nbsp;update
apt-get&nbsp;install&nbsp;keepalived

设置配置文件<br></br>

vrrp_instance&nbsp;&nbsp;VI_1&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;state&nbsp;&nbsp;MASTER
&nbsp;&nbsp;&nbsp;&nbsp;interface&nbsp;&nbsp;eth0
&nbsp;&nbsp;&nbsp;&nbsp;virtual_router_id&nbsp;&nbsp;51
&nbsp;&nbsp;&nbsp;&nbsp;priority&nbsp;&nbsp;100
&nbsp;&nbsp;&nbsp;&nbsp;advert_int&nbsp;&nbsp;1
&nbsp;&nbsp;&nbsp;&nbsp;authentication&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_type&nbsp;&nbsp;PASS
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;auth_pass&nbsp;&nbsp;123456
&nbsp;&nbsp;&nbsp;&nbsp;}
&nbsp;&nbsp;&nbsp;&nbsp;virtual_ipaddress&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;172.18.0.201&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;}
}

王加文博客
请先登录后发表评论
  • latest comments
  • 总共0条评论