Docker 虚拟化技术

2018-11-02  本文已影响0人  十二右

屏蔽掉硬件和软件环境的影响,很方便的在虚拟化容器里跑服务

一、

  1. 查看内核版本uname -r ,需要3.10 以上 3.10.0-693.2.2.el7.x86_64
  2. 下载 yum -y install docker-io
  3. 启动: systemctl start docker
    service docker start
    查看: systemctl status docker
  4. 查看镜像: docker images
    搜索镜像资源:docker search redis:4.0.11
  5. 删除镜像: docker rmi + imageID
  6. 下载Nginx镜像: docker pull nginx
    docker pull <name>:<version>
  7. 下载Mysql 5.7: docker pull mysql:5.7
  8. 下载Redis: docker pull redis:4.0.11
  9. 下载 :docker pull rabbitmq

二、

  1. 查看端口占用情况 : netstat -nap | grep 80
    如果有其他进程占用80端口,须停止(aliyundun除外)
  2. 创建容器 :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 镜像
  3. 阿里云安全组开放所有端口 1/65535
  4. 开启本机防火墙: systemctl start firewalld
  5. 防火墙开启80端口: firewall-cmd --add-port=80/tcp --permanent
    --permanent 永久开启
  6. 配置防火墙规则后需要重启: systemctl restart firewalld
    再重启docker : systemctl restart docker
  7. 查看正在运行的容器:
    docker ps
    docker container ls
  8. 停止指定容器: docker stop mynginx
    开启指定容器: docker start mynginx
  9. 查看所有容器: docker container ls -a
  10. 删除一个没有运行的容器: docker rm mynginx
    强制删除运行的容器:docker rm -f mynginx
  11. 清空所有没有运行的容器(慎用): docker container prune
  12. 进入容器的shell环境:docker exec -it <name> /bin/bash
  13. 开启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
  14. 启动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
  15. 连接redis :redis-cli -h 120.77.243.69 -->auth 'password' --> ping
  16. 给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(记录敲过的命令)

  1. 创建主机
    docker run -d -p 6379:6379 --name redis-master redis:4.0.11 redis-server --appendonly yes --requirepass whre123
  2. 创建三个从机
    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 : 同步密码
  3. 检查主从复制的配置
    docker exec -it redis-master /bin/bash
    auth whre123
    info replication

黑技术

  1. 删除所有的redis-server服务: ps -ef | grep redis-server | grep -v grep | awk '{print $2}' | xargs kill
    grep -v grep - 排除 grep的进程
    awk '{print 2}' - 打印指定的搜索结果 ;2-第二列的PID
    xargs - 将前面的内容作为参数传给 kill
  2. shell 脚本, 开机自启:
    cd /usr/bin/ -- 存放命令的文件夹
    vim xxx.sh -->写入命令
    chmod 777 xxx.sh -- 更新xxx.sh文件的权限
    输入 xxx.sh 即可运行脚本里的命令
上一篇下一篇

猜你喜欢

热点阅读