Mr.Blog


  • 首页

  • 归档

  • 标签

  • 分类

  • 搜索

Docker 命令

发表于 2020-07-06 | 分类于 Docker

基本命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# docker run
run:
-v 本地/服务器 对应的本地资源/服务器资源地址
-i 以交互模式运行容器,通常与 -t 同时使用
-t 为容器重新分配一个伪输入终端,通常与 -i 同时使用
-d 设置容器后台一直运行
-p 8080:80 对应本地端口:服务器端口
—name 设置容器别名

# 查看服务器IP
docker-machine ip default

# 登录
docker login

docker image

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
# 镜像列表
docker images
# 删除镜像
docker rmi id
# 删除 none 镜像
docker rmi $(docker images | grep "none" | awk '{print $3}')
# 删除所有镜像
docker rmi $(docker images -q)
# 搜索镜像
docker search 镜像ID或者镜像名称
# 拉取镜像, tag 版本
docker pull image:[tag]
# 直接从镜像加速地址进行拉取
docker pull registry.docker-cn.com/myname/myrepo:mytag
# 使用当前目录的 Dockerfile 创建镜像
docker build -t [username]/[repository]:[tag] .
# 推送镜像到仓库
docker push [OPTIONS] [username]/[repository]:[tag]
# 从容器创建一个新的镜像
docker commit -a "作者名称" -m "说明" 容器名称或ID 打包的镜像名称:标签
# OPTIONS说明:
-a :提交的镜像作者
-c :使用Dockerfile指令来创建镜像
-m :提交时的说明文字
-p :在commit时,将容器暂停
阅读全文 »

Nginx 相关

发表于 2019-04-01 | 更新于: 2020-07-06 | 分类于 Nginx

nginx 安装新模块

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
29
#以 OneinStack 安装 nginx-rtmp-module 模块为例子, OneinStack 解压后的目录为 /packages/oneinstack

#1. 下载 nginx-rtmp-module 并解压
git clone https://github.com/arut/nginx-rtmp-module.git

#2. 查看 nginx 已安装的模块
[root@192 ~]# nginx -V
nginx version: nginx/1.14.2
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC)
built with OpenSSL 1.1.1a 20 Nov 2018
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --user=www --group=www --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.1a --with-pcre=../pcre-8.42 --with-pcre-jit --with-ld-opt=-ljemalloc

#3. 解压 nginx、openssl-1.1.1a、pcre-8.42
tar -zxvf /packages/oneinstack/src/nginx-1.14.2.tar.gz
tar -zxvf /packages/oneinstack/src/openssl-1.1.1a.tar.gz
tar -zxvf /packages/oneinstack/src/pcre-8.42.tar.gz

#4. 编译 nginx (不要 make install), 这里添加模块 --add-module=/packages/nginx-rtmp-module
cd /packages/oneinstack/src/nginx-1.14.2
./configure --prefix=/usr/local/nginx --user=www --group=www --add-module=/packages/nginx-rtmp-module --with-http_stub_status_module --with-http_v2_module --with-http_ssl_module --with-http_gzip_static_module --with-http_realip_module --with-http_flv_module --with-http_mp4_module --with-openssl=../openssl-1.1.1a --with-pcre=../pcre-8.42 --with-pcre-jit --with-ld-opt=-ljemalloc
make

#5. 替换 nginx 二进制文件
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
cp ./objs/nginx /usr/local/nginx/sbin/

#6. 重启nginx
systemctl restart nginx
阅读全文 »

Docker 基于 LNMP 扩展安装

发表于 2020-07-06 | 分类于 Docker

以下扩展安装基于 Docker 搭建 LNMP + Redis


全局安装 Laravel dd() 函数

创建 composer 文件夹
1
2
3
cd /data/php
mkdir composer
cd composer
新建 /data/php/composer/composer.json
1
2
3
4
5
6
7
8
9
10
{
"require": {
"squizlabs/php_codesniffer": "*",
"fxp/composer-asset-plugin": "^1.4",
"symfony/var-dumper": "3.3.16"
},
"autoload": {
"files": []
}
}
阅读全文 »

Docker 搭建 LNMP + Redis

发表于 2020-07-03 | 分类于 Docker

软件安装前的准备工作

安装 Docker
创建项目及服务目录
1
2
mkdir /data && cd /data
mkdir -p php/conf.d php/logs nginx/conf.d nginx/cert nginx/logs mysql/data mysql/logs redis/data app/default
在 /data/app/default 目录下创建测试用的项目文件
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
29
30
31
32
33
34
35
# /data/app/default/index.php
<?php
date_default_timezone_set('PRC');
echo date('Y-m-d H:i:s');

// Redis 测试
$redis = new Redis();
$redis->connect('172.18.0.10', 6379);
$redis->auth('123456');
$redis->set(mt_rand(1, 9999), date('Y-m-d H:i:s'));

// MySQL 测试
try {
$dbh = new PDO('mysql:host=172.18.0.9;dbname=test', 'root', '123456');
$result = $dbh->query('SHOW TABLES');
foreach ($result as $row) {
var_dump($row);
}
} catch (PDOException $e) {
var_dump($e->getMessage());
}

phpinfo();

# /data/app/default/index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
It Works.
</body>
</html>
创建自定义网络
1
docker network create --subnet=172.18.0.0/16 lnmp
阅读全文 »

Docker 安装

发表于 2020-07-03 | 分类于 Docker

Linux 安装 Docker + docker-compose

Docker

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
29
# 1.卸载旧版本
sudo yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine

# 2. 使用 Repository 安装
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# 若下载太慢,可替换镜像源
sed -i 's/download.docker.com/mirrors.tuna.tsinghua.edu.cn\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

# 3.安装 docker
sudo yum install docker-ce docker-ce-cli containerd.io

# 4.启动 docker
sudo systemctl start docker

# 5.卸载 docker
sudo yum remove docker-ce docker-ce-cli containerd.io

# 6.删除所有镜像
sudo rm -rf /var/lib/docker

# 7.配置镜像源
vim /etc/docker/daemon.json
{
"registry-mirrors": ["镜像源地址"]
}

# 8.重启 docker
sudo systemctl restart docker

docker-compose

1
2
curl -L https://github.com/docker/compose/releases/download/1.23.2/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose
阅读全文 »

Kafka 安装

发表于 2020-07-02 | 分类于 Kafka

Windows Kafka 安装

  1. 安装 JDK

    1
    2
    3
    # 1.下载 [JRE](https://www.oracle.com/java/technologies/javase-jre8-downloads.html) 并安装
    # 2.系统环境变量 -> 添加系统变量 -> JAVA_HOME = D:\Web\Java\jre1.8.0_251
    # 3.系统环境变量 -> 编辑 Path 变量 -> 添加路径 %JAVA_HOME%\bin
  2. 安装 zookeeper

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 1.下载 [zookeeper](https://zookeeper.apache.org/releases.html#download) (bin 版,即安装包带bin的)
    # 2.解压 apache-zookeeper-3.6.0-bin.tar.gz 至 D:\Web\kafka, 并进入 apache-zookeeper-3.6.0-bin\conf
    # 3.重命名 zoo_sample.cfg 为 zoo.cfg
    # 4.编辑 zoo.cfg
    # 修改 dataDir
    dataDir = dataDir=D:/Web/kafka/apache-zookeeper-3.6.0-bin/data
    # 修改 admin.serverPort
    admin.serverPort = 8888
    # 5.系统环境变量 -> 编辑 Path 变量 -> 添加路径 D:\Web\kafka\apache-zookeeper-3.6.0-bin\bin
    # 6.打开 CMD 窗口, 运行 zkserver
  3. 安装 kafka

    1
    2
    3
    4
    5
    6
    7
    # 1.下载 [kafka](https://kafka.apache.org/downloads) (下载二进制版本)
    # 2.解压 kafka_2.12-2.5.0.tgz 至 D:\Web\kafka
    # 3.编辑 kafka_2.12-2.5.0/config/server.properties
    log.dirs=D:/Web/kafka/kafka_2.12-2.5.0/kafka-logs
    zookeeper.connect=localhost:2181
    # 4.kafka 默认在9092端口上运行,并连接zookeeper的默认端口:2181
    # 5.进入 kafka_2.12-2.5.0/bin/windows 并打开 CMD 窗口, 运行 .\kafka-server-start.bat ..\..\config\server.properties

doctrine/migrations 数据库迁移

发表于 2020-07-02 | 分类于 PHP

doctrine/migrations 数据库迁移

  1. composer require "doctrine/migrations:^2.0"
  2. 整合至项目
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    #!/usr/bin/env php
    <?php
    require_once __DIR__ . '/vendor/autoload.php';

    use Doctrine\DBAL\DBALException;
    use Doctrine\DBAL\DriverManager;
    use Doctrine\Migrations\Configuration\Configuration;
    use Doctrine\Migrations\Tools\Console\Command;
    use Doctrine\Migrations\Tools\Console\Helper\ConfigurationHelper;
    use Doctrine\DBAL\Tools\Console\Helper\ConnectionHelper;
    use Symfony\Component\Console\Application;
    use Symfony\Component\Console\Helper\HelperSet;
    use Symfony\Component\Console\Helper\QuestionHelper;

    /**
    * # 生成迁移脚本
    * php migration.php migrations:generate
    * # 执行迁移到指定版本或最新版本
    * php migration.php migrations:migrate [first|prev|next|latest|版本号]
    * # --dry-run 是空转参数,只显示操作结果,不执行修改
    * php migration.php migrations:migrate --dry-run
    * # 不执行操作,只写入文件,对于生产环境需要手动验证并执行的场景有用
    * php migration.php migrations:migrate --write-sql=file.sql
    * # 查看详细信息
    * php migration.php status
    * # 查看命令列表
    * php migration.php list
    */

    $dbParams = [
    'dbname' => 'test',
    'user' => 'root',
    'password' => 'root',
    'host' => 'localhost',
    'driver' => 'pdo_mysql',
    ];

    try {
    $connection = DriverManager::getConnection($dbParams);
    // 迁移组件
    $configuration = new Configuration($connection);
    $configuration->setName('test'); // 组件名称
    $configuration->setMigrationsNamespace('database\Migrations'); // 迁移类的命名空间
    $configuration->setMigrationsTableName('test_migration_versions'); // 迁移组件的表名
    $configuration->setMigrationsDirectory('D:\Web\Project\private\database\Migrations'); // 迁移类的文件
    $configuration->setAllOrNothing(true); // 是否在单个事务中包装多个迁移
    $configuration->setCheckDatabasePlatform(true); // 是否在生成代码的开头添加数据库平台检查

    $helperSet = new HelperSet();
    $helperSet->set(new QuestionHelper(), 'question');
    $helperSet->set(new ConnectionHelper($connection), 'db');
    $helperSet->set(new ConfigurationHelper($connection, $configuration));

    $cli = new Application('Doctrine Migrations');
    $cli->setCatchExceptions(true);
    $cli->setHelperSet($helperSet);

    $cli->addCommands([
    new Command\DumpSchemaCommand(),
    new Command\ExecuteCommand(),
    new Command\GenerateCommand(),
    new Command\LatestCommand(),
    new Command\MigrateCommand(),
    new Command\RollupCommand(),
    new Command\StatusCommand(),
    new Command\VersionCommand()
    ]);

    $cli->run();
    } catch (DBALException $e) {
    exit($e->getMessage() . PHP_EOL);
    } catch (Exception $e) {
    exit($e->getMessage() . PHP_EOL);
    }
1…456…15
Mr

Mr

懒........

102 日志
21 分类
56 标签
RSS
Links
  • Novnan
  • 挨踢Blog
  • Eagle
  • Timber
  • 谢炳南
© 2020 — 2021 Mr
0%