前言
记录开发和办公环境搭建,持续更新。
开发环境
Java 环境
Python 环境
C/C++ 环境
Node.js 环境
虚拟机环境
安装 VirtualBox
安装 Vagrant
Vagrant 可以帮助我们快速创建出一个虚拟机,可以在 Vagrant Boxes 查看镜像。
安装完 Vagrant 后,使用 vagrant init centos/7
,初始化一个 CentOS7 系统,值得注意的是,这个命令在那个路径下执行,生成的 Vagrantfile 就在这个路径。
使用 vagrant up
启动虚拟机环境,启动后出现 default folder:… =>/vagrant
,表示启动成功,然后 ctrl+c 退出。使用 vagrant ssh
连上虚拟机,默认账户密码都是 vagrant,可以使用 exit 退出。
如果安装太慢,可以在浏览器中下载相应的 CentOS-7-x86_64-Vagrant-2004_01.VirtualBox.box
文件,然后执行命令 vagrant box add -c -f centos/7 box_file_path
添加到本地 box。注意 add 后面的名字 centos/7 必须和 vagrant init 后面跟的名字一样。最后 vagrant up
启动虚拟机环境。
不过她使用的网络方式是网络地址转换 NAT(端口转发),如果其他主机要访问虚拟机,必须要进行端口映射,这样太过麻烦。可以给虚拟机一个固定的 ip 地址,Windows 和虚拟机可以互相 ping 通。具体操作是:打开 Vagrantfile 更改虚拟机ip,修改其中的config.vm.network "private_network",ip:"192.168.56.56"
。
安装 Docker
在 CentOS7 系统安装 Docker,具体步骤为:
# root
su
# 卸载系统之前的 docker
yum remove docker docker-client docker-client-latest docker-common docker-latest-logrotate docker-logrotate docker-engine
# 安装软件包
yum install -y yum-utils
# 设置存储库
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 安装 docker 引擎
yum install docker-ce docker-ce-cli containerd.io
# 启动 docker
systemctl start docker
# 设置开机自启动
systemctl enable docker
# 检查是否安装成功
docker -v
# 配置阿里云镜像加速,参考 https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://wh1acsne.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
# 创建文件夹保存 Docker 所有镜像数据
cd /
mkdir docker
在 Docker 中安装 MySQL,具体步骤为:
# 安装镜像
docker pull mysql:5.7.32
# 创建并编辑 MySQL 配置
touch /docker/mysql5.7.32/conf/my.conf
vi /docker/mysql5.7.32/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
# 启动 MySQL
# --name 指定容器名字 -v 目录挂载 -p 指定端口映射 -e 设置mysql参数 -d 后台运行
sudo docker run -p 3306:3306 --name mysql5.7.32.3306 -v /docker/mysql5.7.32/log:/var/log/mysql -v /docker/mysql5.7.32/data:/var/lib/mysql -v /docker/mysql5.7.32/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.32
# 查看运行情况
docker ps -a
# 设置 MySQL 自启动
docker update mysql5.7.32.3306 --restart=always
# 进入 MySQL
docker exec -it mysql5.7.32.3306 /bin/bash
在 Docker 中安装 Redis,具体步骤为:
# 安装镜像
docker pull redis:3.0.7
docker pull redis:6.0.9
# 创建并编辑 Redis 配置
touch /docker/redis3.0.7/redis.conf
vi /docker/redis3.0.7/redis.conf
# 初始配置为
appendonly yes
port 6379
# 创建多个 Redis 配置文件,并更改多个配置的端口,方便后面使用
cd /docker/redis3.0.7
cp redis.conf /redis6379/redis.conf /redis6380/redis.conf /redis6381/redis.conf
# 启动多个 Redis
docker run -p 6379:6379 --name redis3.0.7.6379 -v /docker/redis3.0.7/redis6379/data:/redis6379/data -v /docker/redis3.0.7/redis6379/redis.conf:/etc/redis6379/redis.conf -d redis:3.0.7 [redis-server /etc/redis6379/redis.conf]
docker run -p 6380:6380 --name redis3.0.7.6380 -v /docker/redis3.0.7/redis6380/data:/redis6380/data -v /docker/redis3.0.7/redis6380/redis.conf:/etc/redis6380/redis.conf -d redis:3.0.7 [redis-server /etc/redis6380/redis.conf]
docker run -p 6381:6381 --name redis3.0.7.6381 -v /docker/redis3.0.7/redis6381/data:/redis6381/data -v /docker/redis3.0.7/redis6381/redis.conf:/etc/redis6381/redis.conf -d redis:3.0.7 [redis-server /etc/redis6381/redis.conf]
# 查看运行情况
docker ps -a
# 设置 Redis 自启动
docker update redis3.0.7.6379 --restart=always
docker update redis3.0.7.6380 --restart=always
docker update redis3.0.7.6381 --restart=always
# 进入 Redis
docker exec -it redis3.0.7.6379 /bin/bash [redis-cli]
docker exec -it redis3.0.7.6380 /bin/bash [redis-cli]
docker exec -it redis3.0.7.6381 /bin/bash [redis-cli]
在 Docker 中安装 Elasticsearch,具体步骤为:
# 下载安装 elasticsearch(存储和检索)和 kibana(可视化检索)
docker pull elasticsearch:7.8.0
docker pull kibana:7.8.0
# 将 docker 里的目录挂载到 linux 的 /docker 目录中
# 修改 /docker 就可以改掉 docker 里的
mkdir -p /docker/elasticsearch7.8.0/config
mkdir -p /docker/elasticsearch7.8.0/data
mkdir -p /docker/elasticsearch7.8.0/plugins
# 让 es 可以被远程任何机器访问
echo "http.host: 0.0.0.0" >> /docker/elasticsearch7.8.0/config/elasticsearch.yml
# 修改文件权限
chmod -R 777 /docker/elasticsearch7.8.0/
# 查看可用内存
[root@10 /]# free -m
# 9200 是用户交互端口,9300 是集群心跳端口
# 第一个 -e,指定是单阶段运行
# 第二个 -e,指定占用的内存大小,生产时可以设置 32G
# 考虑到虚拟机情况,设置内存不超过 512m
docker run --name elasticsearch7.8.0 -p 9200:9200 -p 9300:9300
-e "discovery.type=single-node"
-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
-v /docker/elasticsearch7.8.0/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
-v /docker/elasticsearch7.8.0/data:/usr/share/elasticsearch/data
-v /docker/elasticsearch7.8.0/plugins:/usr/share/elasticsearch/plugins
-d elasticsearch:7.8.0
# 设置开机启动
docker update elasticsearch7.8.0 --restart=always
# 访问 http://192.168.56.56:9200/
返回 elasticsearch 版本信息
# 访问 http://192.168.56.56:9200/_cat/nodes
返回 elasticsearch 节点信息
# kibana 指定了 ES 交互端口 9200
# 5601 为 kibana 主页端口
docker run --name kibana7.8.0 -e ELASTICSEARCH_HOSTS=http://192.168.56.56:9200 -p 5601:5601 -d kibana:7.8.0
# 设置开机启动
docker update kibana7.8.0 --restart=always
# 访问 http://192.168.56.56:5601
返回可视化界面
在 Docker 中安装 elasticsearch-analysis-ik,具体步骤为:
# 由于使用 Docker 安装 ES 时,进行了路径映射,所以直接进入 ES 的 plugins 目录
cd docker/elasticsearch7.8.0/plugins
# 安装 waget
yum install wget
# 安装 unzip
yum install unzip
# 下载 ik 压缩包,如果下载显示 Unable to establish SSL connection. 可以在 wget 后面加上参数 --no-check-certificate
wget [ --no-check-certificate] https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.8.0/elasticsearch-analysis-ik-7.8.0.zip
# 解压 ik
unzip elasticsearch-analysis-ik-7.8.0.zip -d ik
# 更改权限
chmod -R 777 ik
# 删除 ik 压缩包
rm -rf elasticsearch-analysis-ik-7.8.0.zip
# 重启 ES
docker restart elasticsearch7.8.0
# 测试
# 使用默认分词器
GET _analyze
{
"text":"我是中国人"
}
# 输出
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "<IDEOGRAPHIC>",
"position" : 0
},
{
"token" : "是",
"start_offset" : 1,
"end_offset" : 2,
"type" : "<IDEOGRAPHIC>",
"position" : 1
},
{
"token" : "中",
"start_offset" : 2,
"end_offset" : 3,
"type" : "<IDEOGRAPHIC>",
"position" : 2
},
{
"token" : "国",
"start_offset" : 3,
"end_offset" : 4,
"type" : "<IDEOGRAPHIC>",
"position" : 3
},
{
"token" : "人",
"start_offset" : 4,
"end_offset" : 5,
"type" : "<IDEOGRAPHIC>",
"position" : 4
}
]
}
# 使用 ik
GET _analyze
{
"analyzer": "ik_smart",
"text":"我是中国人"
}
# 输出
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "是",
"start_offset" : 1,
"end_offset" : 2,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "中国人",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 2
}
]
}
GET _analyze
{
"analyzer": "ik_max_word",
"text":"我是中国人"
}
# 输出
{
"tokens" : [
{
"token" : "我",
"start_offset" : 0,
"end_offset" : 1,
"type" : "CN_CHAR",
"position" : 0
},
{
"token" : "是",
"start_offset" : 1,
"end_offset" : 2,
"type" : "CN_CHAR",
"position" : 1
},
{
"token" : "中国人",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "中国",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "国人",
"start_offset" : 3,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 4
}
]
}
在 Docker 中安装 Nginx,具体步骤为: