大型电商:环境搭建(Docker)-1
Linux环境搭建
1.下载 visualBox + vagrant
2.cmd输入vagrant init centos/7
注意这个命令在哪个目录下执行的,他的Vagrantfile就生成在哪里
3.vagrant up
启动虚拟机环境
4.vagrant ssh
链接虚拟机
下次使用也可以直接vagrant up直接启动,确保cmd在Vagrantfile的目录中执行
详细可参考博客:https://blog.csdn.net/Tacks/article/details/90372939
网络模式
网络方式是网络地址转换NAT(端口转发),如果其他主机要访问虚拟机,必须由windows端口如3333断发给虚拟机端口如3306。不方便
更改虚拟ip方式:
1.win 下执行 ipconfig 查到vitualbox的虚拟网卡ip 如:192.168.50.1
2.修改Vagrantfile:config.vm.network "private_network",ip:"192.168.56.10"
3.vagrant reload
重启虚拟机
4.ip addr
看到 当前虚拟机ip为192.168.56.10
默认只允许ssh登录方式,为了后来操作方便,文件上传等,我们可以配置允许账号密码登录,也可通过其他工具链接ssh
vim /etc/ssh/sshd_config
修改
PasswordAuthentication yes
重启
service sshd restart
账号root
密码vagrant
本机安装jdk1.8+ maven
安装docker
官方的安装文档:https://docs.docker.com/engine/install/centos/
基本步骤:
1.卸载系统之前的docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
2.设置存储库 配置镜像
sudo yum install -y yum-utils
# 配置镜像
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# docker引擎
sudo yum install docker-ce docker-ce-cli containerd.io
3.启动docker病设置开机自启
sudo systemctl start docker
# 设置开机自启动
sudo systemctl enable docker
4.查看版本
docker -v
5.配置镜像加速
使用阿里云:https://cr.console.aliyun.com/cn-qingdao/instances/mirrors
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://chqac97z.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
安装mysql-docker
用docker安装上mysql,去docker仓库里搜索mysql
安装5.7版本的MySQL
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
端口映射就是把Linux的3306端口,映射docker的3306端口,达到访问Linux端口就能访问docker的对应端口
目录挂载 差不多意思
列出所有容器:docker ps
配置MySQL
# 进入已启动的容器
docker exec -it mysql bin/bash
# 退出进入的容器
exit;
#因为有目录映射,所以我们可以直接在镜像外执行
vi /mydata/mysql/conf/my.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
保存(注意评论区该配置不对,不是collection而是collation)
docker restart mysql
安装Redis-docker
如果直接挂载的话docker会以为挂载的是一个目录,所以我们先创建一个文件然后再挂载,在虚拟机中。
# 在虚拟机中
mkdir -p /mydata/redis/conf
touch /mydata/redis/conf/redis.conf
安装redis
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持久化了。
vim /mydata/redis/conf/redis.conf
# 插入下面内容
appendonly yes #保存
#重启redis
docker restart redis
设置redis容器在docker启动的时候启动
docker update redis --restart=always
IDEA / vscode
idea
安装Lombok和Mybatisx 插件
Lombok 2021年之后的idea内置,无需在自己安装
vscode
vscode下载: https://code.visualstudio.com/
安装以下插件:
Auto Close Tag
Auto Rename Tag
Chinese
ESlint
HTML CSS Support
HTML Snippets
JavaScript (ES6) code snippets
Live Server
open in brower
Vetur
Git
下载git客户端,右键桌面Git GUI/bash Here。
# 配置用户名
git config --global user.name "tin" //(名字,随意写)
# 配置邮箱
git config --global user.email "3558221572@qq.com" // 注册账号时使用的邮箱
# 配置ssh免密登录
ssh-keygen -t rsa -C "3558221572@qq.com"
三次回车后生成了密钥,也可以查看密钥
cat ~/.ssh/id_rsa.pub
浏览器登录码云后,个人头像上点设置、然后点ssh公钥、随便填个标题,然后赋值
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC6MWhGXSKdRxr1mGPZysDrcwABMTrxc8Va2IWZyIMMRHH9Qn/wy3PN2I9144UUqg65W0CDE/thxbOdn78MygFFsIG4j0wdT9sdjmSfzQikLHFsJ02yr58V6J2zwXcW9AhIlaGr+XIlGKDUy5mXb4OF+6UMXM6HKF7rY9FYh9wL6bun9f1jV4Ydlxftb/xtV8oQXXNJbI6OoqkogPKBYcNdWzMbjJdmbq2bSQugGaPVnHEqAD74Qgkw1G7SIDTXnY55gBlFPVzjLWUu74OWFCx4pFHH6LRZOCLlMaJ9haTwT2DB/sFzOG/Js+cEExx/arJ2rvvdmTMwlv/T+6xhrMS3 894548575@qq.com
# 测试
ssh -T git@gitee.com
# 测试成功
Hi unique_perfect! You've successfully authenticated, but GITEE.COM does not provide shell access.
git的相关操作:https://www.tinstu.com/category/notes/git