谷粒商城分布式环境配置(一)

谷粒商城分布式环境配置:
vagrant:
1、安装vagrant:
vagrant init centos/7

	2、配置固定ip:
		更改Vagrantfile更改虚拟机ip,修改其中的config.vm.network "private_network",ip:"192.168.56.10"
	
	3、修改登录方式:默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录
		vim /etc/ssh/sshd_config
		# 修改
		PasswordAuthentication yes
		# 重启
		service sshd restart
		# 账号root
		密码vagrant
	
	4、配置源:
		# 备份原yum源
		mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
		# 使用新yum源
		curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
		# 生成缓存
		yum makecache
		
Docker:
	1、安装Docker:https://docs.docker.com/engine/install/centos/
		#卸载系统之前的docker 
		sudo yum remove docker \
			  docker-client \
			  docker-client-latest \
			  docker-common \
			  docker-latest \
			  docker-latest-logrotate \
			  docker-logrotate \
			  docker-engine
						  
              
		sudo yum install -y yum-utils

		# 配置镜像
		sudo yum-config-manager \
			--add-repo \
			https://download.docker.com/linux/centos/docker-ce.repo
			
		sudo yum install docker-ce docker-ce-cli containerd.io

		sudo systemctl start docker
		# 设置开机自启动
		sudo systemctl enable docker

		docker -v
		sudo docker images

		# 配置镜像加速: https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
		sudo mkdir -p /etc/docker
		sudo tee /etc/docker/daemon.json <<-'EOF'
		{
		  "registry-mirrors": ["https://XXXXXXXXXXX.mirror.aliyuncs.com"]
		}
		EOF

		sudo systemctl daemon-reload
		sudo systemctl restart docker
	
	2、安装mysql-docker:
		sudo docker pull mysql:5.7

		# --name指定容器名字 -v目录挂载 -p指定端口映射  -e设置mysql参数 -d后台运行
		sudo docker run -p 3306:3306 --name mysql \
		-v /mydata/mysql/log:/var/log/mysql \
		-v /mydata/mysql/data:/var/lib/mysql \
		-v /mydata/mysql/conf:/etc/mysql \
		-e MYSQL_ROOT_PASSWORD=root \
		-d mysql:5.7
		
		su root 密码为vagrant,这样就可以不写sudo了
	
	3、MySQL 配置:
		
		# 进入已启动的容器
		docker exec -it mysql bin/bash
		# 退出进入的容器
		exit;

		因为有目录映射,所以我们可以直接在镜像外执行
		vi /mydata/mysql/conf/my.conf 

		[client]
		default-character-set=utf8
		[mysql]
		default-character-set=utf8
		[mysqld]
		init_connect='SET collation_connection = utf8_unicode_ci'
		init_connect='SET NAMES utf8'
		character-set-server=utf8
		collation-server=utf8_unicode_ci
		skip-character-set-client-handshake
		skip-name-resolve

		保存

		docker restart mysql
		
	4、Redis 安装配置:
		# 在虚拟机中
		mkdir -p /mydata/redis/conf
		touch /mydata/redis/conf/redis.conf

					docker pull redis

		docker run -p 6379:6379 --name redis \
		-v /mydata/redis/data:/data \
		-v /mydata/redis/conf/redis.conf:/etc/redis/redis.conf \
		-d redis redis-server /etc/redis/redis.conf

		# 直接进去redis客户端。
		docker exec -it redis redis-cli
		
		默认是不持久化的。在配置文件中输入appendonly yes,就可以aof持久化了。修改完docker restart redis,docker -it redis redis-cli
		vim /mydata/redis/conf/redis.conf
		# 插入下面内容
		appendonly yes
		保存

		docker restart redis

		# 设置redis容器在docker启动的时候启动
		docker update redis --restart=always

	5、安装nginx docker:
		docker pull nginx:1.10
		# 随便启动一个nginx实例,只是为了复制出配置,放到docker里作为镜像的统一配置
		docker run -p 80:80 --name nginx -d nginx:1.10

		# 把nginx里的东西复制出来
		cd /mydata/nginx
		docker container cp nginx:/etc/nginx .
		然后在外部 /mydata/nginx/nginx 有了一堆文件
		mv /mydata/nginx/nginx /mydata/nginx/conf
		# 停掉nginx
		docker stop nginx
		docker rm nginx

		# 创建新的nginx,使用刚才复制出来的配置文件
		docker run -p 80:80 --name nginx \
		-v /mydata/nginx/html:/usr/share/nginx/html \
		-v /mydata/nginx/logs:/var/log/nginx \
		-v /mydata/nginx/conf:/etc/nginx \
		-d nginx:1.10

		# 注意一下这个路径映射到了/usr/share/nginx/html,我们在nginx配置文件中是写/usr/share/nginx/html,不是写/mydata/nginx/html

		docker update nginx --restart=always
上一篇:15.第20、21章.项目集、项目组合管理


下一篇:docker安装