屏蔽掉硬件和软件环境的影响,很方便的在虚拟化容器里跑服务
一、
- 查看内核版本
uname -r
,需要3.10 以上3.10.0-693.2.2.el7.x86_64
- 下载
yum -y install docker-io
- 启动: systemctl start docker
service docker start
查看: systemctl status docker - 查看镜像: docker images
搜索镜像资源:docker search redis:4.0.11 - 删除镜像: docker rmi + imageID
- 下载Nginx镜像: docker pull nginx
docker pull <name>:<version> - 下载Mysql 5.7: docker pull mysql:5.7
- 下载Redis: docker pull redis:4.0.11
- 下载 :docker pull rabbitmq
二、
- 查看端口占用情况 : netstat -nap | grep 80
如果有其他进程占用80端口,须停止(aliyundun除外) - 创建容器 :
docker run -d -p 80:80 --name mynginx nginx
docker run -d -p <o-port>:<i-port> --name <name> 镜像:版本号
docker run -d - 开启docker守护进程
80:80 - 阿里云80端口:docker本地80端口
--name mynginx nginx - 启动nginx 镜像 - 阿里云安全组开放所有端口 1/65535
- 开启本机防火墙: systemctl start firewalld
- 防火墙开启80端口:
firewall-cmd --add-port=80/tcp --permanent
--permanent 永久开启 - 配置防火墙规则后需要重启: systemctl restart firewalld
再重启docker : systemctl restart docker - 查看正在运行的容器:
docker ps
docker container ls - 停止指定容器: docker stop mynginx
开启指定容器: docker start mynginx - 查看所有容器: docker container ls -a
- 删除一个没有运行的容器: docker rm mynginx
强制删除运行的容器:docker rm -f mynginx - 清空所有没有运行的容器(慎用): docker container prune
- 进入容器的shell环境:
docker exec -it <name> /bin/bash
- 开启mysql容器 :
docker run -d -p 3306:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
配置mysql登录密码 - -e MYSQL_ROOT_PASSWORD=123456
指定mysql版本,否则会自动下载最新版本: msyql:5.7 - 启动redis
docker run -d -p 6379:6379 --name redis-master redis:4.0.11 redis-server --appendonly yes --requirepass whre123
redis-server - redis 启动服务命令
--appendonly yes - 持久化
--requirepass whre123 - 设置密码 whre123 - 连接redis :
redis-cli -h 120.77.243.69
-->auth 'password' --> ping - 给redis 建立奴隶:
docker run -d -p --name redis-slave-1 --link redis-master:redis-master redis:4.0.11 redis-server --slaveof redis-master 6379 --masterauth whre123
查看主从信息: info replication
Redis
Redis 两种持久化方案: RDB(存储数据) / AOF(记录敲过的命令)
- 创建主机
docker run -d -p 6379:6379 --name redis-master redis:4.0.11 redis-server --appendonly yes --requirepass whre123 - 创建三个从机
docker run -d -p --name redis-slave-1 --link redis-master:redis-master redis:4.0.11 redis-server --slaveof redis-master 6379 --masterauth whre123
docker run -d -p --name redis-slave-2 --link redis-master:redis-master redis:4.0.11 redis-server --slaveof redis-master 6379 --masterauth whre123
--link redis-master:redis-master : 连接主机并给主机别名(主机ip改了也可以用别名连接)
--slaveof redis-master 6379 : 设定为主机(别名)的从机
--masterauth whre123 : 同步密码 - 检查主从复制的配置
docker exec -it redis-master /bin/bash
auth whre123
info replication
黑技术
- 删除所有的redis-server服务:
ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill
grep -v grep - 排除 grep的进程
awk '{print 2-第二列的PID
xargs - 将前面的内容作为参数传给 kill - shell 脚本, 开机自启:
cd /usr/bin/
-- 存放命令的文件夹
vim xxx.sh
-->写入命令
chmod 777 xxx.sh
-- 更新xxx.sh文件的权限
输入 xxx.sh 即可运行脚本里的命令