练习目的:
1:在虚拟机中的centos系统中安装docker
2:docker中安装redis程序
3:成功在本地Java工程中访问redis程序

具体步骤:
1:安装docker过程不在赘述,访问docker教程即可,具体网址:
http://www.runoob.com/docker/docker-architecture.html

2:docker中安装redis
查询docker公共仓库中的redis镜像:docker search redis
从仓库中拉取redis镜像:docker pull docker.io/redis 查看已下载的镜像列表:docker images
更改镜像标签:docker tag docker.io/redis:latest redis:v1
编写Dockerfile文件用以创建出自己的镜像文件
Dockerfile文件内容如下:

FROM redis:v1
COPY redis.conf /usr/local/etc/redis/redis.conf
CMD [ "redis-server", "/usr/local/etc/redis/redis.conf" ]

注意:redis.conf是同redis镜像版本的配置文件,已修改为自己需要的内容。

编译镜像命令:docker build -t redis:v1 .
创建并运行一个redis容器(bridge模式)
docker run -d -p 192.168.10.120:56379:6379 --name redis-server redis:v1
注意:192.168.10.120是虚拟机centos系统IP,通过192.168.10.120:56379:6379设置和redis映射

host模式下创建并运行一个容器,完全使用宿主机(虚拟机)的ip和端口,未测试成功
docker run -d --net=host --name redis-server redis:v1

宿主机启动一个客户端(配置了密码 root)
docker exec -it redis-server redis-cli -a root
运行后可以查看 logs 日志
docker logs -f 容器ID

未设置redis集群和数据卷,后续再更新。
自此redis已在docker中新建成功。但只能在虚拟机系统中通过终端访问,无法在本机中访问。

3:为了能在本地访问虚拟机内运行在docker中的redis,需要实现虚拟机系统配置静态IP,本地通过crt工具可ssh连接虚拟机。
1)修改虚拟机本地网络地址
查询虚拟机网络配置:ifconfig
查看是否有本地网络eth0
如果没有则
cd /etc/sysconfig/network-scripts 进入网络配置目录
修改ifcfg-* 文件名为 ifcfg-eth0
vi ifcfg-eth0 ,修改内容配置

TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
#BOOTPROTO="dhcp"
BOOTPROTO="static"   #设置静态Ip
DEFROUTE="yes"
IPADDR=192.168.10.120  #虚拟机网络地址
NETMASK=255.255.255.0  #子网掩码
GATEWAY=192.168.10.122  **#网关地址**
IPV4_FAILURE_FATAL="yes"
IPV6INIT="no"
#IPV6_AUTOCONF="yes"
#IPV6_DEFROUTE="yes"
#IPV6_FAILURE_FATAL="no"
#IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"   #更改原有的名字成eth0
UUID="b95e1368-01af-4253-826f-da963e34eca3"
DEVICE="System eth0"  #更改原有的名字成eth0
ONBOOT="yes"  #网卡设备自动启动
DNS1=192.168.10.120 #dns服务器1
DNS2=8.8.8.8 #dns服务器2

注意:
还需修改network和resolv.conf文件:

[root@localhost ~]# vim /etc/sysconfig/network
    NETWORKING=yes
    NETWORKING_IPV6=no #关掉IPv6
    HOSTNAME=localhost.localdomain
    GATEWAY=192.168.10.122 #默认网关地址

    [root@localhost ~]# vim /etc/resolv.conf
    nameserver 8.8.8.8 #DNS域名解析地址(首选)
    nameserver 192.168.10.120#本机IP即可

2)禁用该可预测命名规则。对于这一点,你可以在启动时传递“net.ifnames=0 biosdevname=0 ”的内核参数。这是通过编辑/etc/default/grub并加入“net.ifnames=0 biosdevname=0 ”到GRUBCMDLINELINUX变量来实现的。

[root@linux-node1 ~]# vim /etc/default/grub

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet net.ifnames=0 biosdevname=0"
GRUB_DISABLE_RECOVERY="true"

3)运行命令grub2-mkconfig -o /boot/grub2/grub.cfg 来重新生成GRUB配置并更新内核参数。

grub2-mkconfig -o /boot/grub2/grub.cfg

4)重启系统,查看网卡名称和地址是否更改

5)通过VMware修改虚拟网络

依次点击:编辑 ==》 虚拟网络编辑器,如下图,选择的是NAT模式

docker查看Redis是否正常启动 docker进入redis_IP


注意:子网IP设置为和虚拟机本地网络地址同一网段,相关的子网掩码。
点击NAT设置按钮:

docker查看Redis是否正常启动 docker进入redis_redis_02


注意:网关IP请设置为虚拟机本地网络地址的同一网关地址6)配置电脑本地的网络连接

查找到VMware Virtual Ethernet Adapter for VMnet8。如果没有请查看电脑服务是否启用以下两个服务:

VMware DHCP Service和VMware NAT Service

docker查看Redis是否正常启动 docker进入redis_IP_03


配置IP地址

docker查看Redis是否正常启动 docker进入redis_redis_04


注意:IP地址要和虚拟机内的同网段

7)电脑本地配置SecureCRT访问虚拟机的连接,

docker查看Redis是否正常启动 docker进入redis_IP_05


CentOS7–删除虚拟网卡virbr0的方法

1.Down:
 ifconfig virbr0 down
 2.Delete:
 brctl delbr virbr0
 3.virbr0是由libvirtd服务创建,需要删除libvirtd:
 systemctl disable libvirtd

配置IP为虚拟机网络地址。
如果虚拟机未安装ssh服务请先按照以下执行:

验证和虚拟机网络是否通畅: ping 192.168.10.120
验证能否访问redis:telnet 192.168.10.120 56379