安装docker

# 更新yum包
yum update

# 安装docker
yum install docker

安装centos7

# 添加centos镜像
docker pull centos:7

# 查看镜像ID
docker images

# 启动容器
docker run -itd --privileged -p 8888:8888 -p 8080:8080 --name="容器名" 镜像ID /usr/sbin/init

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

# 例如
docker run -it --privileged=true  -p 3306:3306 -p 9001:9001  --name="akunicom-rnunner" -v /mdata/akunicom/public:/www/wwwroot/tip/storage/app/public 0c9b6d692e17501 /bin/bash

docker run 常用参数说明

  • -p,指定端口映射

    docker run -p 宿主机端口:容器内端口 -p 宿主机端口:容器内端口 ...
    
  • -i,用于控制台交互

  • -t,可以支持终端登录

  • -d,指定容器在后台运行

  • --privileged,指定容器是否为特权容器,特权容器拥有所有的capabilities

  • --restart="no", 指定容器停止后的重启策略

    • no:容器退出时不重启
    • on-failure:容器故障退出(返回值非零)时重启
    • always:容器退出时总是重启
  • --name="容器名称",指定容器名称

  • -v, --volume=[], 给容器挂载存储卷,挂载到容器的某个目录

    docker run -v 宿主机目录:/容器内目录 ...
    

安装宝塔面板

# 查看运行中的容器
docker ps

# centos进入容器
docker exec -it 容器ID /bin/bash

# 安装宝塔
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装LNMP

  • 安装完之后将MySQLNGINXPHP更新至最新版本
  • 安装PHP扩展,fileinfoopcache

安装nodejs

# 安装nodejs

# 前往官网查看最新版本,如12.13.1
# 下载官方安装包
wget -c https://nodejs.org/dist/v12.13.1/node-v12.13.1-linux-x64.tar.xz

# 解压缩
tar -xvf node-v12.13.1-linux-x64.tar.xz

# 重命名
mv node-v12.13.1-linux-x64 nodejs

# 创建连接 放在 /usr/local/bin 文件夹下
ln -s 安装目录/nodejs/bin/node /usr/local/bin/node
ln -s 安装目录/nodejs/bin/npm /usr/local/bin/npm

# 查看版本
node -v
npm -v
# 安装yarn
npm install yarn -g

# 创建链接
ln -s /www/server/nodejs/bin/yarn /usr/local/bin/yarn

# 查看版本
yarn -v
# 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org

# 创建链接
ln -s /www/server/nodejs/bin/cnpm /usr/local/bin/cnpm

# 查看版本
cnpm -v
# 删除安装包
rm node-v12.13.1-linux-x64.tar.xz

重装Git

# 移除已有Git
yum remove git

# 安装依赖
sudo yum groupinstall "Development Tools"
sudo yum install gettext-devel openssl-devel perl-CPAN perl-devel zlib-devel

# 查看最新版本
https://github.com/git/git/releases

# 安装最新版本
wget https://github.com/git/git/archive/v2.24.0.tar.gz

# 解压
tar xvf v2.24.0.tar.gz

# 进入git文件夹
cd git-2.24.0

# 构建前检查
make configure
./configure --prefix=/usr/local

# 安装
make install

安装项目

# 克隆项目
git clone 项目地址

# 安装前端依赖
yarn install

# 安装后端依赖
# 注意:在宝塔PHP的设置中删除以下禁用函数,putenv,proc_open,symlink
# 设置composer阿里镜像
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
composer install

# 生成加密key
php artisan key:generate

# 生成jwt加密key
php artisan jwt:secret

# 设置storage目录权限
chmod -R 777 storage
chmod -R 777 bootstrap/cache

# 创建软连接
php artisan storage:link

# 打包项目
npm run prod

FAQ:

  • 宝塔面板端口号忘记了怎么办

    # 修改port.pl中的端口
    vi /www/server/panel/data/port.pl
    
    # 重启面板
    /etc/init.d/bt restart
    
  • 宝塔 nginx 404
    修改站点配置,配置伪静态为laravel5

  • Win10 docker 重新分配了内存之后, 容器无法启动
    这是windows下 docker 没有完全清理环境导致的, 重启解决

监控

  • 安装软件

    # 安装Prometheus
    docker pull prom/prometheus
    docker run --rm -d -p 9090:9090/tcp prom/prometheus:latest
    
    # 安装node_exporter
    docker pull prom/node-exporter
    docker run --rm -d -p 9100:9100/tcp prom/node-exporter:latest
    
    # 安装Grafana,请参阅文档(https://grafana.com/docs/grafana/latest/installation/docker/)
    docker pull grafana/grafana
    docker run --rm -d --name=grafana -p 3000:3000 grafana/grafana
    
  • 配置

    # TODO