环境搭建
//这篇文章是跟着某硅谷自己鼓捣电商大项目是做笔记记录下来的一点东西。
1.虚拟机环境搭建
- 虚拟机容易使用的是virtualbox
- 虚拟机管理使用Vagrant
-
- 在cmd下使用vagrant init centos/7命令,初始化一个centos/7环境
- 再使用vagrant up命令,启动centos/7
- vagrant ssh 连接虚拟机
- vagrant up 启动 cmd文件夹下有Vargantfile文件
- 注意 vagrant创建账户的密码是vargrant
2.虚拟机网络配置
-
在vagrantfile文件中,进行如下的配置
config.vm.network "private_network",ip:"192.168.x.x" # 这里的地址以主机ipconfig给的virtualbox虚拟网卡的ip段为准 # linux是 ip addr
-
配置完成之后直接执行vagrant reolad命令 重启虚拟机
-
之后两边互相能ping通即可。
3.安装docker
-
docker基于镜像,可以秒级启动各种容器 ,每一个容器都是一个完整的运行环境,容器之间相互隔离。
-
镜像市场 docker hub,官网有安装文件:https://docs.docker.com/engine/install/centos/
-
卸载旧版本
旧版本的 Docker 被称为
docker
或docker-engine
. 如果安装了这些,请卸载它们以及相关的依赖项。$ sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ docker-latest-logrotate \ docker-logrotate \ docker-engine
-
设置存储库
安装
yum-utils
包(提供yum-config-manager
实用程序)并设置稳定的存储库。
$ sudo yum install -y yum-utils
$ sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 安装 Docker 引擎
安装最新版本的 Docker Engine 和 containerd,或者进入下一步安装特定版本:
$ sudo yum install docker-ce docker-ce-cli containerd.io
- 启动 Docker。
$ sudo systemctl start docker
可以通过docker -v看docker是否启动,或 sudo docker images,检查镜像
-
设置开机自启
sudo systemctl enable docker
-
设置镜像加速,推荐阿里云的https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://leljmgci.mirror.aliyuncs.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
docker 安装mysql
-
sudo docker pull mysql:5.7
-
创建实例并启动
-
# 这其实是一条很细的创建命令了,配置文件,日志文件等都是不必须的 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
参数说明
-p 3306:3306:将容器的 3306 端口映射到主机(linux)的 3306 端口
-v /mydata/mysql/conf:/etc/mysql:将配置文件夹挂载到主机
-v /mydata/mysql/log:/var/log/mysql:将日志文件夹挂载到主机
-v /mydata/mysql/data:/var/lib/mysql/:将配置文件夹挂载到主机
-e MYSQL_ROOT_PASSWORD=root:初始化 root 用户的密码
-
docker ps 查看容器
-
docker exec -it mysql /bin/bash 进入容器 exit 退出
mysql配置
vi /mydata/mysql/conf/my.cnf
[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
# 注意:解决 MySQL 连接慢的问题
# 在配置文件中加入如下,并重启 mysql(docker restart mysql)
[mysqld]
skip-name-resolve
# 解释:
skip-name-resolve:跳过域名解析
docker 安装redis
# 先创建文件,否则挂载时会出问题,会把文件读成目录
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
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
- 连接客户端
docker exec -it redis redis-cli
-
持久化(AOF)
cd /mydata/redis/conf vi redis.conf appendonly yes