Linux笔记
Linux笔记
寇大哥的Linux安装
安装
首先获得镜像:CentOS-7-x86_64-DVD-1611.iso
一路确定走下来,然后新建虚拟机,配置网络和图形化界面,设置增强功能。
获取root权限
su root
我的配置Linux安装,最新成功版本
-
下载最新VirtualBox 并修改项目位置, 管理->全局设定->如下图所示
-
在想要在哪启动的位置新建文件夹,在该位置打开cmd
-
输入vagrant判断是否安装成功
-
vagrant init centos7 https://mirrors.ustc.edu.cn/centos-cloud/centos/7/vagrant/x86_64/images/CentOS-7.box
输入这个命令,从国内镜像源下载centos7,然后文件夹下会出现一个VagrantFile
-
vagrant up
通过这个命令启动Linux;通过VirtualBox也可以直接启动 要从对应的VagrantFile里使用该命令
-
vagrant ssh
通过这个命令连接到虚拟机中的服务器中
-
网络配置
vagrant默认使用的是NAT端口转换的方式,意味着我们每新增一个应用都需要做一个端口映射过于麻烦。
vagrant的网络配置是直接从VagrantFile中读取而来的,因此我们直接修改这个文件即可修改网络配置。-
查看主机的VirtualBox的虚拟网卡的IP地址:
修改VagrantFile中的文件,修改后的IP地址要和169.254.59.1在同一网段,这里我们改成169.254.59.10
这里的ip是通过在外面的ipconfig,然后获取ip地址 -
运行命令
vagrant reload
重新加载文件并启动
-
通过vagrant ssh连接,现在主机和虚拟机已经可以相互ping通。
主机ip地址也是通过ipconfig查询:
虚拟机的ip地址:
-
我的电脑在休眠后,主机执行ipconfig发现VirtualBox的ip变化了,可能得重新执行一次上面更新ip的流程?这也太麻烦了吧
-
Xshell连接Vagrant创建的虚拟机
通过xshell连接vagrant创建的虚拟机(centos 7) 基本上就是照着这个文章走。
-
找到vagrant的密钥
-
在Xshell中设置通过密钥登录的方式
-
上面的方法可行,也可以通过修改登录的密码来做到
-
vagrant ssh
-
su root 输入密码 vagrant
-
修改sshd_config使root用户可以使用密码登录
vi /etc/ssh/sshd_config
修改PasswordAuthentication yes
-
输入
passwd
修改密码
修改为了 root / qweasd123 -
直接用用户名和密码通过ssh登录即可
-
Linux安装Docker
-
切换到root
su root
密码默认是vagrant
-
卸载旧版本
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
-
安装Docker Engine、containerd和Docker Compose的最新版本
sudo yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin
-
启动Docker
sudo systemctl start docker
-
设置Docker开机自启
sudo systemctl enable docker
-
配置阿里镜像源
-
打开阿里云网址并登陆。
-
点右上角的控制台,下拉,找到容器镜像服务。
-
点击进入后,点镜像加速器,依次每条执行sudo语句
sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": ["https://nwz1swh4.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com"] } EOF sudo systemctl daemon-reload sudo systemctl restart docker
-
Docker下安装MySql
-
拉取Docker镜像
sudo docker pull mysql:5.7
-
检查下载完成的Docker镜像
sudo docker images
-
创建实例并启动
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
挂载后:
-
进入交互模式
docker exec -it mysql /bin/bash
查询mysql位置,验证docker实例的mysql是在一个小的Linux里的
whereis mysql
-
创建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=utf8collation-server=utf8_unicode_ciskip-character-set-client-handshakeskip-name-resolve
-
重启mysql容器
docker restart mysql
Docker下安装Redis
-
下载镜像(最新)
docker pull redis
遇到问题
[root@localhost docker]# docker pull redis Using default tag: latest Error response from daemon: Get "https://registry-1.docker.io/v2/": dial tcp: lookup registry-1.docker.io on 10.0.2.3:53: read udp 10.0.2.15:52618->10.0.2.3:53: i/o timeout
后来多添加了两个加速的网址,在公司的网络下pull成功了。
-
创建redis配置文件,防止挂载的时候将目录认为是文件名
先创建目录mkdir -p /mydata/redis/conf
创建配置文件
touch /mydata/redis/conf/redis.conf
-
配置端口映射、-v挂载配置文件、-d设置守护线程在后台启动。
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
-
由于redis未配置持久化,执行docker restart redis后,里面的数据会被清空。(老师的5.x版本的是酱紫的,但是我的最新版本能获得。。。)
不过还是在conf目录下修改下redis.conf
[root@localhost conf]# vi redis.conf
修改内容为
appendonly yes
-
安装可视化工具并连接虚拟机的redis
Redis Desktop Manager(Redis可视化工具)安装及使用教程 有个网盘来下载。
常用命令
Linux命令
-
查看我是哪个用户
whoami
-
sudo代表以超级管理员的身份运行后面的命令。
-
查看本地IP
ip addr ifconfig
-
连接测试环境
ssh ubuntu@101.43.196.12
-
运行项目命令
这里运行的时候会自动拉取最新的git上的代码,所以直接提交git,然后跑一下这个命令即可
-
打包项目的命令,在上传git之前,要确定能够打包成功,且本地要运行成功不报错。
-
这个项目自己就能从git上拉取最新的代码,然后执行,因此我们只需要提交到git,然后执行
ssh ubuntu@101.43.196.12 sh build-main.sh tail -f /data/apps/log/character_ai/main/info.log -n200 tail -f /data/apps/log/character_ai/main/error.log -n200
查看OpenApi
sh topia/build-apis.sh tail -f /data/apps/log/character_ai/apis/info.log
测试数据库
sh sh mysql.sh show databases;use character_ai_dev; show tables; select * from character_user_role_like order by create_time desc limit 10; select table_name,column_name,column_type,column_key from information_schema.COLUMNS where table_name = 'character_role_info' and table_schema= 'character_ai_dev';
Docker命令
-
查看版本
docker -v
-
查看已有镜像
docker images
-
查看镜像启动的容器的端口号映射等信息
docker ps
-
移除已有的实例
docker rm + container ID
-
当镜像有,容器已经被创建过,但是ps没有,说明服务关了,可以重启一下这个容器。
docker restart mysql
-
自动启动
docker update mysql --restart=always
docker update redis --restart=always
Vagrant命令
-
启动Linux;通过VirtualBox也可以直接启动
vagrant up
-
连接到虚拟机中的服务器中
vagrant ssh
此命令必须在vagrantfile目录下执行