默认redis和mysql是不支持远程连接的
mysql
- 制作一个镜像文件
- docker run --tid --name center 3a54 (默认的ubutun)
- docker ps -a
- 配置中心节点
- docker attach 2eaf
- cat /etc/hosts
- mysql -h 127.0.0.1 -u root -p
- password
- /etc/init.d/mysql restart
- mysql -h 127.0.0.1 -u root -p
- 如果进入sql模式,exit退出
- mysql -h 172.17.0.8 -u root -p
- 连接不上
- vim /etc/mysql/my.cnf
- 注释掉 : bind-address = 127.0.0.1 #注释掉,保存退出
- 重启服务器: /etc/init.d/mysql restart
- root 只支持本地步支持远程
- mysql -h 127.0.0.1 -u root -p
- create user “hello”@"%" identified by “123456” #%表示任意主机连接
- grant create,select,update,delete,insert on . to hello #*.*表示所有表
- 以上是创建一个用户,并赋予权限
- exit
- mysql -h 172.17.0.08 -u root -p
- 查看是否能连接成功
redis
- /etc/init.d/redis-server restart
- redis-cli -h 127.0.0.1 -p 6879
- cat /etc/hosts
- redis-cli -h 172.17.0.8
- 如果拒绝,修改配置文件
- vim /etc/redis/redis.conf
- 注释掉 bind 127.0.0.1 #注释掉,保存并退出
- etc/init.d/redis-server restart
- 可能需要重启容器
- docker ps -a
- docker stop 2eaf
- docker start 2eaf
- /etc/init.d/redis-server restart
- /etc/init.d/mysql restart
- ctrl+p+q 不结束任务,退出
创建子节点
- docker images
- docker run --tid --name c1 --link center 3a54
- 测试mysql是否能远程连接 : mysql -h 172.17.0.8 -u hello -p
- show databases;
- 测试redis: redis-cli -h 172.17.0.8 能进入就连接上了
- 这样就配置成功了
- 之后在子节点中 写爬虫文件
- 测试完成之后,
- 把该子节点做成一个镜像
- docker commit afab hello:ok
- 最后根据这个镜像创建 容器
- docker run -tid --name c2 --link center ec48 (连接哪个服务器,更具哪个镜像)
- docker run -tid --name c3 --link center ec48
- …
- 最后 进入创建的 容器中,运行爬虫
- docker attach c2
- python myscrapy.py
- ctrl+p+q
- 依次进入容器,运行爬虫
- …
- 最后进入 中心节点 查看结果
- docker attach center
- redis-cli
- hgetall rst