• 安装Docker
  1. 更新yum :yum -y update
  2. 安装:yum install -y docker
  • 管理虚拟机
  1. 启动:service docker start
  2. 关闭:service docker stop
  3. 重启:service docker restart
  • 安装镜像
  1. 配置国内的docker镜像加速器:打开网址daocloud,注册,然后复制配置的shell语句,在服务器上执行,最后还需要删除结尾的逗号:打开配置文件 vi /etc/docker/daemon.json,进入编辑状态删除最后的逗号,然后保存退出。
  2. 搜索镜像:docker search java(搜索Java的镜像)
  3. 下载安装镜像:docker pull 镜像名
  4. 查看镜像:docker images 
  5. 导出镜像:docker save 镜像名字 > 导出地址(例:docker save doacker.io/java > /home/java.tar.gz)
  6. 导入镜像:docker load < 镜像文件
  7. 删除镜像 docker rmi 镜像名,删除镜像 docker rm 容器ID
  • 容器
  1. 启动容器:1. docker run -it --name <自定义一个容器名字> 镜像名 bash(/bin/bash);2.docker create -it test:v1,这样创建后的容器是Created状态,未启动,运行容器:docker start 容器ID ,当docker中指定的应用终结时,容器也会自动终结
  2. 启动时映射两个端口:docker run it -- name <容器名>  -p <宿主机端口>:<容器端口>  -p <宿主机端口>:<容器端口> 镜像名 bash
  3. 启动时映射文件:docker run -it --name <容器名> -v <宿主机文件路径>:<容器文件路径> --privileged java bah (--privileged:赋予docker对文件的最高权限)
  4. 暂停容器:docker pause   <容器名>
  5. 恢复运行容器:docker unpause  <容器名> 
  6. 关闭容器:docker stop  <容器名> (与exit效果相同)
  7. docker container prune:自动清除掉所有处于停止状态的容器
  8. 开启容器:docker start -i  <容器名> 
  9. 重启容器:docker restart 容器ID
  10. 删掉容器:docker rm  <容器名> (先要关闭容器)
  11. 查看启动的容器:docker ps -a
  12. 进入容器:docker exec -it 容器ID /bin/bash
  13. 导出容器(导出变成一个文件):docker export -o test.tar 容器ID,或:docker export 容器ID >test.tar
  14. 导入容器(导入变成镜像):docker import test.tar - test:v2,与载入镜像文件相比,导入容器快照文件将丢弃所有的历史记录和元数据信息
  15. 查看容器详细信息: docker container inspect 容器ID
  16. 查看容器内进程:docker top 容器ID
  17. 查看统计信息:docker stats 容器ID
  18. 复制文件:docker cp 本地路径 容器ID:容器路径
  19. 查看容器内文件变更:docker container diff 容器ID
  20. 查看容器的映射端口:docker container point 容器ID
  • 镜像
  1. 基于已有容器创建镜像:docker commit -m "提交信息" -a "作者" 容器ID test:v1
  2. 查看镜像的详细信息:docker inspect test:v1
  3. 存出镜像:docker save -o test.tar test:v1(导出本地镜像test:v1为文件test.tar)
  4. 载入镜像:docker load -i test.tar(从文件test.tar导入镜像到本地镜像列表)
  5. 上传镜像:1. 首先在https://hub.docker.com网站上创建一个存储库;2,登陆:docker login;3. 添加新的标签

           docker tag test:v1 1353330851/zxl-test:v1;4,上传:docker push 1353330851/zxl-test:v1

  • 搭建pxc集群
  1. 下载安装镜像:docker pull percona/percona-xtradb-cluster
  2. 重命名(原因是名字太长《强迫症》):docker tag docker.io/percona/percona-xtradb-cluster pxc :重命名为pxc,然后删除原来的镜像 docker rmi docker.io/percona/percona-xtradb-cluster
  3. 创建内部网络:docker network create --subnet=172.18.0.0/24 net1(docker network create net1:创建net1网段 ;docker network inspect net1:查看net1网段信息;docker network rm net1:删除net1)
  4. 创建Docker卷:(无法通过目录映射把mysql集群数据保存到宿主机,)docker volume create --name v1(创建名字是v1的卷),在宿主机上可见通过:docker inspect v1,查看v1卷的信息;删除卷:docker volume rm v1
  5. 创建PXC容器  
//创建集群节点node1,-d表示让容器在后台执行
docker run -d -p 3306:3306
-v <需要将mysql数据目录映射到的卷的名字>:/var/lib/mysql
-e MYSQL_ROOT_PASSWORD=<创建出的数据库实例的密码>
-e CLUSTER_NAME=PXC
-e XTRABACKUP_PASSWORD=<数据库节点之间同步的密码>
--privileged --name=node1 --net=net1 --ip 172.18.0.2
pxc
//创建集群节点node2,加入集群和node1同步,映射到不同的数据卷
docker run -d -p 3307:3306
-v <需要将mysql数据目录映射到的卷的名字>:/var/lib/mysql
-e CLUSTER_JOIN=node1
-e MYSQL_ROOT_PASSWORD=<创建出的数据库实例的密码>
-e CLUSTER_NAME=PXC
-e XTRABACKUP_PASSWORD=<数据库节点之间同步的密码>
--privileged --name=<创建的PXC容器的名字> --net=net2 --ip 172.18.0.3
pxc

第一个节点创建成功后(第一个创建较慢),本机mysql客户端软件联机测试连接成功后,再创建其他的节点。记得打开宿主机的防火墙3306端口,如果你用的阿里的云服务器,也要再控制台上为系统防火墙添加上相应的端口,否则本地连接时会报请求超时,连接不上。

  • PXC的负载均衡,使用Haproxy
  1. 下载安装镜像:docker pull haproxy
  2. 创建Haproxy配置文件:touch  /home/dev/config/haproxy.cfg,

未完待续..........