哈特中尉's Blog

不会写代码的司机不是好厨师!

1.环境说明

  • 系统:MacOS 10.12.5 (16F73)
  • 容器:VirtualBox 5.1.10 r112026 (Qt5.6.2)
  • 镜像:CentOS-7-x86_64-Minimal-2009.iso
  • VirtualBox创建centos7虚拟机:很简单,不啰嗦了。

设置网卡

  • VirtualBox设置网卡链接方式为桥接
  • 查看ip地址ip addr
  • 以后用ssh客户端连接。

关闭SELinux

1
2
3
vi /etc/selinux/config
将`SELINUX=enforcing`改为`SELINUX=disabled`
重启 reboot

禁用防火墙

1
2
3
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

安装基础软件

1
yum -y install wget automake autoconf libtool make gcc gcc-c++  zip unzip

使用国内yum源(可选)

repo 源一般包括 base, updates, Extras 三部分。

1
2
3
4
5
6
7
8
9
cd /etc/yum.repos.d/
mv CentOS-Base.repo CentOS-Base.repo.backup
wget http://mirrors.163.com/.help/CentOS7-Base-163.repo

yum clean all
yum makecache
yum -y update
yum -y upgrade
yum -y install epel-release

查看已安装的源(可选)

1
yum repolist all

查看centos版本(可选)

命令 lsb_release -a 或者 cat /etc/redhat-release

1
2
3
4
5
LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch
Distributor ID: CentOS
Description: CentOS release 5.4 (Final)
Release: 5.4
Codename: Final

用户管理(可选)

  • 创建用户 useradd admin
  • 设置密码 passwd admin
  • 添加sudo权限
    1
    2
    chmod -v u+w /etc/sudoers
    vi /etc/sudoers
    1
    2
    3
    ## Allow root to run any commands anywher
    root ALL=(ALL) ALL
    admin ALL=(ALL) ALL
  • 取消 sudoers 文件可写权限
    1
    chmod -v u-w /etc/sudoers

2.安装软件

安装git

1
2
yum install -y git
git config --global credential.helper store #记住用户名密码,不用每次输入

安装jdk

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#查看已经安装(若有,则卸载)
java -version
rpm -qa | grep java

rpm -e --nodeps tzdata-java-2012c-1.el6.noarch
rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.45.1.11.1.el6.x86_64


rpm安装(二选一,不推荐)
wget https://d6.injdk.cn/oraclejdk/8/jdk-8u341-linux-x64.rpm
rpm -ivh jdk-8u212-linux-x64.rpm
java -version
cd /usr/java


tar.gz安装(二选一,推荐)
其他jdk版本下载请访问:https://www.injdk.cn/
wget https://d6.injdk.cn/oraclejdk/8/jdk-8u381-linux-x64.tar.gz
mkdir -p /usr/java #解压到rpm安装方式的默认目录
tar -zxvf jdk-8u381-linux-x64.tar.gz -C /usr/java
cd /usr/java
mv jdk1.8.0_341 jdk8

安装maven

1
2
3
4
5
6
7
其他版本maven下载请访问:https://mirrors.huaweicloud.com/apache/maven/maven-3/
wget https://repo.huaweicloud.com/apache/maven/maven-3/3.8.3/binaries/apache-maven-3.8.3-bin.tar.gz
tar -xvf apache-maven-3.8.3-bin.tar.gz -C /usr/local/
cd /usr/local/
mv apache-maven-3.8.3 maven3
cd /usr/local/maven3/conf
vi settings.xml

创建本地仓库存储路径 mkdir -p /opt/mvnrepo

1
2
3
4
5
6
7
8
9
10
<localRepository>/opt/mvnrepo</localRepository>

<mirrors>
<mirror>
<id>aliyun-maven</id>
<mirrorOf>*,!dxrj-maven</mirrorOf>
<name>aliyun-maven</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
</mirrors>

配置环境变量

  • vi /etc/profile
    1
    2
    3
    4
    export JAVA_HOME=/usr/java/jdk8
    export MAVEN_HOME=/usr/local/maven3
    export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
  • source /etc/profile

安装nodejs

下载地址 https://registry.npmmirror.com/binary.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
cd ~/

【node14】过时,不推荐
wget https://registry.npmmirror.com/-/binary/node/latest-v14.x/node-v14.21.3-linux-x64.tar.gz
tar -xvf node-v14.21.3-linux-x64.tar.xz -C /usr/local/
cd /usr/local/
mv node-v14.21.3-linux-x64 nodejs

【node16】主流,16最后一个版本
wget https://registry.npmmirror.com/-/binary/node/latest-v16.x/node-v16.20.1-linux-x64.tar.gz
tar -xvf node-v16.20.1-linux-x64.tar.xz -C /usr/local/
cd /usr/local/
mv node-v16.20.1-linux-x64 nodejs

【node18】改动较大,nuxt3必须大于等于18
wget https://registry.npmmirror.com/-/binary/node/latest-v18.x/node-v18.19.0-linux-x64.tar.gz
tar -xvf node-v18.19.0-linux-x64.tar.gz -C /usr/local/
mv node-v18.19.0-linux-x64 nodejs18 #非系统默认,jenkins使用



cd /usr/local/nodejs/bin
./node -v
ln -s /usr/local/nodejs/bin/node /usr/bin/node
ln -s /usr/local/nodejs/bin/npm /usr/bin/npm
ln -s /usr/local/nodejs/bin/npx /usr/bin/npx

npm config set registry https://registry.npmmirror.com
  • 安装yarn

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    wget https://repo.huaweicloud.com/yarn/v1.22.19/yarn-v1.22.19.tar.gz
    tar -zxvf yarn-v1.22.19.tar.gz -C /usr/local/
    cd /usr/local/
    mv yarn-v1.22.19 yarn
    cd /usr/local/yarn/bin
    ./yarn -v
    ln -s /usr/local/yarn/bin/yarn /usr/bin/yarn


    yarn config set registry https://registry.npmmirror.com



    yarn config set registry https://registry.npm.taobao.org -g
    yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g

    https://www.cnblogs.com/dousnl/p/12052834.html

  • 安装jenkins

https://www.cnblogs.com/yajunLi/p/13850686.html

tengine

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
yum -y install openssl openssl-devel pcre pcre-devel
wget http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
tar -zxvf tengine-2.3.2.tar.gz
cd tengine-2.3.2
./configure --prefix=/usr/local/nginx
make && make install
cd /usr/local/nginx/sbin
./nginx

https://www.cnblogs.com/zhuwenjoyce/p/10878804.html

以下是安装nginx官方版本
yum install -y pcre pcre-devel gcc zlib zlib-devel openssl openssl-devel
wget http://nginx.org/download/nginx-1.20.1.tar.gz
tar -zxvf nginx-1.20.1.tar.gz
cd nginx-1.20.1
./configure --prefix=/usr/local/nginx
make && make install
cd /usr/local/nginx/sbin
./nginx

配置nginx

1
2
mkdir -p /usr/local/nginx/conf/cert
mkdir -p /usr/local/nginx/conf/vhosts

安装docker

1
2
3
4
5
6
7
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
sudo yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
sudo yum makecache fast
sudo yum -y install docker-ce
sudo service docker start
systemctl enable docker
systemctl daemon-reload
设置国内源

vi /etc/docker/daemon.json

1
2
3
4
5
6
7
{
"registry-mirrors": [
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com",
"https://docker.mirrors.ustc.edu.cn"
]
}

安装portainer-ce(docker可视化)

1
2
3
docker pull portainer/portainer-ce
docker volume create portainer_data
docker run -d -p 9000:9000 --name=portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce

安装docker

1
2
3
4
5
6
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker
systemctl enable docker
docker version

安装portainer

1
2
docker pull portainer/portainer
docker run -p 9000:9000 --name prtainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -d portainer/portainer

安装mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
docker images |grep mysql
docker pull mysql
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6



# docker 中下载 mysql
docker pull mysql

#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Lzslov123! -d mysql

#进入容器
docker exec -it mysql bash

#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lzslov123!';

#添加远程登录用户
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';

常用命令

  • 查看当前正在运行的容器
    1
    docker ps 
  • 查看所有容器的状态
    1
    docker ps -a
  • 启动/停止某个容器
    1
    2
    3
    4
    5
    docker start id 
    docker start name

    docker stop id
    docker stop name
  • 进入某个容器(使用exit退出后容器也跟着停止运行)
    1
    docker attach id 
  • 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
    1
    docker exec -ti id 
  • 查看本地镜像
    1
    docker images 

删除某个容器

1
docker rm id/name

删除某个镜像

1
docker rmi id/name 
  • 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
    1
    docker run --name test -ti ubuntu /bin/bash 
  • 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
    1
    docker build -t soar/centos:7.1
  • 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
    1
    docker run -d -p 2222:22 --name test soar/centos:7.1 

安装docker

1
2
3
4
5
6
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y docker-ce
systemctl start docker
systemctl enable docker
docker version

安装portainer

1
2
docker pull portainer/portainer
docker run -p 9000:9000 --name prtainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -d portainer/portainer

安装mysql

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
docker images |grep mysql
docker pull mysql
docker run -p 3306:3306 --name mymysql -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6



# docker 中下载 mysql
docker pull mysql

#启动
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Lzslov123! -d mysql

#进入容器
docker exec -it mysql bash

#登录mysql
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lzslov123!';

#添加远程登录用户
CREATE USER 'liaozesong'@'%' IDENTIFIED WITH mysql_native_password BY 'Lzslov123!';
GRANT ALL PRIVILEGES ON *.* TO 'liaozesong'@'%';

常用命令

  • 查看当前正在运行的容器
    1
    docker ps 
  • 查看所有容器的状态
    1
    docker ps -a
  • 启动/停止某个容器
    1
    2
    3
    4
    5
    docker start id 
    docker start name

    docker stop id
    docker stop name
  • 进入某个容器(使用exit退出后容器也跟着停止运行)
    1
    docker attach id 
  • 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)
    1
    docker exec -ti id 
  • 查看本地镜像
    1
    docker images 

删除某个容器

1
docker rm id/name

删除某个镜像

1
docker rmi id/name 
  • 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash
    1
    docker run --name test -ti ubuntu /bin/bash 
  • 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像
    1
    docker build -t soar/centos:7.1
  • 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变
    1
    docker run -d -p 2222:22 --name test soar/centos:7.1 

使用网易docker镜像
https://c.163.com/

1.拉取mysql镜像

1
2
$ docker pull hub.c.163.com/library/mysql:5.7.17
$ docker images #查看是否拉取成功

2.启动mysql镜像

1
2
3
$ docker run -e MYSQL_ROOT_PASSWORD=123456  hub.c.163.com/library/mysql:5.7.17

$ docker run -p 3306:3306 --name mymysql -v $PWD/conf/my.cnf:/etc/mysql/my.cnf -v $PWD/logs:/logs -v $PWD/data:/mysql_data -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6
  • -p 3306:3306:将容器的3306端口映射到主机的3306端口
  • -v $PWD/conf/my.cnf:/etc/mysql/my.cnf:将主机当前目录下的conf/my.cnf挂载到容器的/etc/mysql/my.cnf
  • -v $PWD/logs:/logs:将主机当前目录下的logs目录挂载到容器的/logs
  • -v $PWD/data:/mysql_data:将主机当前目录下的data目录挂载到容器的/mysql_data
  • -e MYSQL_ROOT_PASSWORD=123456:初始化root用户的密码

$ docker run –name mysql -v /home/iyannik0215/Dropbox/DataDir:/var/lib/mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=你的密码 -d mysql:latest
简单的讲讲这些命令。

命令 参数
run 运行容器。
–name 命名容器,如果不命名会是一长串的 Hash 值,不美观。
-v 数据卷存储,如果不存储容器关闭后数据会全部销毁。将本地的某个文件夹,映射到容器的文件夹。
-p 端口映射,将本地的3306端口映射到容器中的3306,感觉数据库就在本地一样,
-e 设置变量值,在此处设置了数据库root的密码,很多变量可以自己设置,具体访问 https://hub.docker.com
-d 后台运行

http://blog.csdn.net/ownfire/article/details/50274335

http://blog.opskumu.com/docker.html
系统 用户-权限
确保 container 用户uid 与host一致 mysql:mysql uid:999
确保 拥有读写权限
应用
mysql版本是否一致 ,是否与mariadb混用
配置文件是否正确
删除日志 错误文件.
如果还有问题,那么重新初始化一个数据库
docker
挂载路径是否正确? 仔细检查
mysql
mysql -S /var/run/mysqld/mysqld.sock -uroot -p 重新指定sock链接

检测容器

1
docker status

3.停止镜像

1
$ docker stop af92caefd33d # af92caefd33d 为 CONTAINER ID

1.创建docker-compose工作目录

1
2
3
4
$ mkdir -p oracle/data  #创建目录

$ cd oracle
$ touch docker-compose.yml

2.配置docker-compose.yml

1
2
3
4
5
6
7
8
9
version: '2'
services:
oracle:
image: sath89/oracle-xe-11g
container_name: oracle
ports:
- 1521:1521
volumes:
- ./data:/u01/app/oracle

3.启动容器

1
2
docker-compose up -d   #启动oracle
docker-compose kill #关闭容器

3.登录参数

1
2
3
SID: xe
username: system
password: oracle

1.XE的数据库限制最大为4G,一般开发够使用。

2.wnameless/oracle-xe-11g 一旦挂载本地卷,就无法登陆了。一个fork版本解决了这个问题。

3.为什么要绑定本地卷

wnameless版本无法绑定本地卷的问题,会导致我们一旦重启容器或重建容器,我们在数据库中的所有操作、创建的表以及数据等等全部丢失了。绑定了本地卷,可以让容器的数据持久化到本机。

参考链接:
https://my.oschina.net/polly/blog/968162

安装环境说明

macos 10.12.5

1.安装hexo

1
2
$ npm install -g hexo-cli  #安装hexo
$ hexo #安装好hexo以后,查看安装信息

2.创建博客

1
2
3
$ hexo init myblog  #创建一个新博客,内容放在myblog目录下
$ cd myblog #进入博客更目录
$ npm install #安装所有的依赖包

3.写文章

1
2
$ cd myblog   #进入博客更目录
$ hexo new "mytest" #创建新文章

编写文章内容

1
2
3
4
5
---
title: Hexo搭建博客
date: 2017-06-18 20:05:19
---
我是测试正文,我支持markdown格式。

4.看文章

1
2
$ hexo generate  #生成静态页面,等价 hexo g  
$ hexo server #预览文章,等价 hexo s

浏览器预览文章 http://localhost:4000/

5.发布文章

A.配置git部署
在*_config.yml*配置文件中添加git配置

1
2
3
4
5
6
7
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/pengyan5945/pengyan5945.github.io.git
branch: master


B.部署到git服务器

1
2
$ npm install hexo-deployer-git --save   #安装部署插件
$ hexo deploy #部署到服务器,等价hexo d

6.常用命令

1
2
3
$ hexo clean  #清理
$ hexo generate #生成,等价hexo g
$ hexo deploy #部署,等价hexo d

更多参考链接:
http://www.jianshu.com/p/e99ed60390a8
http://www.jianshu.com/p/465830080ea9

安装环境说明

macos 10.12.5

1.安装jekyll

1
2
3
$ gem install bundler #若已经安装,则不需要
$ bundle install #若已经安装,则不需要
$ gem install jekyll

2.创建博客

1
$ jekyll new myBlog  #在myBlog目录下创建博客

3.写文章

在_posts/ 目录下访问abc.md文件即可,文件内容:

1
2
3
4
5
6
7
---
layout: post
title: "Welcome to Jekyll!"
date: 2016-10-16 11:29:08 +0800
categories: jekyll update
---
正文...

看文章

1
$ jekyll serve

浏览器预览文章 http://localhost:4000/

参考链接:
http://www.jianshu.com/p/245aabdace05