- 安装Docker
- 更新yum :yum -y update
- 安装:yum install -y docker
- 管理虚拟机
- 启动:service docker start
- 关闭:service docker stop
- 重启:service docker restart
- 安装镜像
- 配置国内的docker镜像加速器:打开网址daocloud,注册,然后复制配置的shell语句,在服务器上执行,最后还需要删除结尾的逗号:打开配置文件 vi /etc/docker/daemon.json,进入编辑状态删除最后的逗号,然后保存退出。
- 搜索镜像:docker search java(搜索Java的镜像)
- 下载安装镜像:docker pull 镜像名
- 查看镜像:docker images
- 导出镜像:docker save 镜像名字 > 导出地址(例:docker save doacker.io/java > /home/java.tar.gz)
- 导入镜像:docker load < 镜像文件
- 删除镜像 docker rmi 镜像名,删除镜像 docker rm 容器ID
- 容器
- 启动容器:1. docker run -it --name <自定义一个容器名字> 镜像名 bash(/bin/bash);2.docker create -it test:v1,这样创建后的容器是Created状态,未启动,运行容器:docker start 容器ID ,当docker中指定的应用终结时,容器也会自动终结
- 启动时映射两个端口:docker run it -- name <容器名> -p <宿主机端口>:<容器端口> -p <宿主机端口>:<容器端口> 镜像名 bash
- 启动时映射文件:docker run -it --name <容器名> -v <宿主机文件路径>:<容器文件路径> --privileged java bah (--privileged:赋予docker对文件的最高权限)
- 暂停容器:docker pause <容器名>
- 恢复运行容器:docker unpause <容器名>
- 关闭容器:docker stop <容器名> (与exit效果相同)
- docker container prune:自动清除掉所有处于停止状态的容器
- 开启容器:docker start -i <容器名>
- 重启容器:docker restart 容器ID
- 删掉容器:docker rm <容器名> (先要关闭容器)
- 查看启动的容器:docker ps -a
- 进入容器:docker exec -it 容器ID /bin/bash
- 导出容器(导出变成一个文件):docker export -o test.tar 容器ID,或:docker export 容器ID >test.tar
- 导入容器(导入变成镜像):docker import test.tar - test:v2,与载入镜像文件相比,导入容器快照文件将丢弃所有的历史记录和元数据信息
- 查看容器详细信息: docker container inspect 容器ID
- 查看容器内进程:docker top 容器ID
- 查看统计信息:docker stats 容器ID
- 复制文件:docker cp 本地路径 容器ID:容器路径
- 查看容器内文件变更:docker container diff 容器ID
- 查看容器的映射端口:docker container point 容器ID
- 镜像
- 基于已有容器创建镜像:docker commit -m "提交信息" -a "作者" 容器ID test:v1
- 查看镜像的详细信息:docker inspect test:v1
- 存出镜像:docker save -o test.tar test:v1(导出本地镜像test:v1为文件test.tar)
- 载入镜像:docker load -i test.tar(从文件test.tar导入镜像到本地镜像列表)
- 上传镜像: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集群
- 下载安装镜像:docker pull percona/percona-xtradb-cluster
- 重命名(原因是名字太长《强迫症》):docker tag docker.io/percona/percona-xtradb-cluster pxc :重命名为pxc,然后删除原来的镜像 docker rmi docker.io/percona/percona-xtradb-cluster
- 创建内部网络: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)
- 创建Docker卷:(无法通过目录映射把mysql集群数据保存到宿主机,)docker volume create --name v1(创建名字是v1的卷),在宿主机上可见通过:docker inspect v1,查看v1卷的信息;删除卷:docker volume rm v1
- 创建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
- 下载安装镜像:docker pull haproxy
- 创建Haproxy配置文件:touch /home/dev/config/haproxy.cfg,
未完待续..........