docker部署mysql集群
1.0 安装环境
1.1 安装Centos7
-
Docker官方建议在Ubuntu中安装,因为Docker是基于Ubuntu发布的,而且一般Docker出现的问题Ubuntu是最先更新或者打补丁的。在很多版本的CentOS中是不支持更新最新的一些补丁包的。
-
如果docker安装在centos上面建议用Centos7版本,在CentOS6.x的版本中,安装前需要安装其他很多的环境而且Docker很多补丁不支持更新。
1.2 安装Docker
# 更新原有安装包
yum -y update
# 安装依赖
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
# 安装docker
sudo yum install docker-ce
1.21 docker常用命令
- linux 的 service 和 systemctl 命令大致区别
- 启用可以用service docker start也可以用systemctl start docker其他重启停止也可以用systemctl
- CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 daemon,原来管理系统启动和管理系统服务的相关命令全部由 systemctl命 令来代替。
- service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。
- service启动缺点
- 一是启动时间长。init 进程是串行启动,只有前一个进程启动完,才会启动下一个进程。
- 二是启动脚本复杂。init 进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,这往往使得脚本变得很长
- systemctl 优缺点
- Systemd 的优点是功能强大,使用方便,缺点是体系庞大,非常复杂。事实上,现在还有很多人反对使用 Systemd,理由就是它过于复杂,与操作系统的其他部分强耦合,违反 “keep simple, keep stupid” 的Unix 哲学。
# 查看docker版本
docker -v
# 启动
service docker start
# 停止
service dockerstop
# 重启
service docker restart
# 开机启动
systemctl enable docker
# 重启docker
systemctl restart docker
1.21 在线安装docker镜像
# 搜索java镜像
docker search java
#拉取java镜像
docker pull java
- docker仓库是部署在国外服务器上面的,所以如果在国内拉取镜像那将是一个非常漫长的过程,因此我们可以用一些国内的镜像仓库,比如阿里云的又或者加速器DaoCloud
1.22 配置Docker加速器
- 配置阿里云镜像加速器
- 配置阿里云镜像加速器需要注册账号
- https://cr.console.aliyun.com/#/imageList)
- 注册之后点击左下方镜像加速器会生成一个专属加速网址
- 将生成的专属网址,加入/etc/docker/daemon.json即可
# 修改docker配置文件
vi /etc/docker/daemon.json
- 配置Daocloud加速器
- 官网:https://www.daocloud.io/mirror
#配置加速器命令(复制粘贴执行即可)Ps:此命令仅克用于Linux操作系统
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://f1361db2.m.daocloud.io
- 注意:在设置完成后,可能有一个坑存在的,执行命令设置后,它会在docker配置文件中添加一个地址,但是地址后面是多了一个,号的,需要手动删除
- 删除配置文件中多余的,号
# 修改docker配置文件
vi /etc/docker/daemon.json
1.23 导出和导出镜像
# 导出镜像
docker save 镜像名>导出路径
docker sava tomcat > /home/tomcat.tar.gz
# 导入镜像
docker load<镜像文件路径
docker load < /home/mysql.tar.gz
#查看docker已有镜像
docker images
# 删除镜像
docker rmi 镜像名
docker rmi reids
#修改镜像名
docker tag 原镜像名 修改后镜像名
docker tag docker.io/percona/percona-xtradb-cluster pxc
1.24 容器相关命令
# 创建并且启动一个容器
# -it表示启动容器后开启一个交互的界面 --name 给容器起一个名字不取就没有可通过id辨别 bash代表启动程序后运行什么样的成员bash=bash命令行
docker run -it --name myTomcat tomcat bash
# 开启容器并且映射端口 -p 8088:8080代表将容器8080端口映射到宿主机8088上面 可以映射多个端口
docker run -it --name myTomcat -p 8088:8080 -p 8089:3306 tomcat bash
# 开启容器并且映射目录或者文件
# -v宿主机目录映射到容器中/home/data:/mysqlData冒号之前是宿主机的目录集将目录/home/data映射到/mysqlData