-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcli.html
70 lines (61 loc) · 29.1 KB
/
cli.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
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
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>命令行工具 | Docker LNMP Docs</title>
<meta name="generator" content="VuePress 1.7.1">
<meta name="description" content="">
<link rel="preload" href="/assets/css/0.styles.4bdbd8d9.css" as="style"><link rel="preload" href="/assets/js/app.209f2259.js" as="script"><link rel="preload" href="/assets/js/2.8af6cdaa.js" as="script"><link rel="preload" href="/assets/js/20.21128e97.js" as="script"><link rel="prefetch" href="/assets/js/10.be6825a7.js"><link rel="prefetch" href="/assets/js/100.03d20cb7.js"><link rel="prefetch" href="/assets/js/101.e786fe82.js"><link rel="prefetch" href="/assets/js/102.6c9d2de9.js"><link rel="prefetch" href="/assets/js/103.93d73ab5.js"><link rel="prefetch" href="/assets/js/104.9e50d9a7.js"><link rel="prefetch" href="/assets/js/105.f3f9432d.js"><link rel="prefetch" href="/assets/js/11.5ace5492.js"><link rel="prefetch" href="/assets/js/12.755ab736.js"><link rel="prefetch" href="/assets/js/13.3f1cae5e.js"><link rel="prefetch" href="/assets/js/14.77b9cd63.js"><link rel="prefetch" href="/assets/js/15.e1d177bf.js"><link rel="prefetch" href="/assets/js/16.dfd1de0f.js"><link rel="prefetch" href="/assets/js/17.1b359d8a.js"><link rel="prefetch" href="/assets/js/18.9269c7d7.js"><link rel="prefetch" href="/assets/js/19.781915cc.js"><link rel="prefetch" href="/assets/js/21.dc763957.js"><link rel="prefetch" href="/assets/js/22.0626debe.js"><link rel="prefetch" href="/assets/js/23.a089e602.js"><link rel="prefetch" href="/assets/js/24.eb210250.js"><link rel="prefetch" href="/assets/js/25.9ccc7a03.js"><link rel="prefetch" href="/assets/js/26.88883549.js"><link rel="prefetch" href="/assets/js/27.e060a936.js"><link rel="prefetch" href="/assets/js/28.a219e9bf.js"><link rel="prefetch" href="/assets/js/29.4f674c07.js"><link rel="prefetch" href="/assets/js/3.b55cf771.js"><link rel="prefetch" href="/assets/js/30.2bb6ea0b.js"><link rel="prefetch" href="/assets/js/31.54b20cf7.js"><link rel="prefetch" href="/assets/js/32.4c3406bc.js"><link rel="prefetch" href="/assets/js/33.d54cec12.js"><link rel="prefetch" href="/assets/js/34.3f5de6f2.js"><link rel="prefetch" href="/assets/js/35.beff2e39.js"><link rel="prefetch" href="/assets/js/36.f9a34636.js"><link rel="prefetch" href="/assets/js/37.3dc04856.js"><link rel="prefetch" href="/assets/js/38.6d855a6e.js"><link rel="prefetch" href="/assets/js/39.fc73f21d.js"><link rel="prefetch" href="/assets/js/4.6d0e0c17.js"><link rel="prefetch" href="/assets/js/40.af31e3da.js"><link rel="prefetch" href="/assets/js/41.671019c4.js"><link rel="prefetch" href="/assets/js/42.2294d29b.js"><link rel="prefetch" href="/assets/js/43.db6a01ac.js"><link rel="prefetch" href="/assets/js/44.dd24a4b9.js"><link rel="prefetch" href="/assets/js/45.49453970.js"><link rel="prefetch" href="/assets/js/46.fd24200c.js"><link rel="prefetch" href="/assets/js/47.1949af45.js"><link rel="prefetch" href="/assets/js/48.79ae6536.js"><link rel="prefetch" href="/assets/js/49.fcde6b7f.js"><link rel="prefetch" href="/assets/js/5.0b207204.js"><link rel="prefetch" href="/assets/js/50.3b4d4418.js"><link rel="prefetch" href="/assets/js/51.edfa61cd.js"><link rel="prefetch" href="/assets/js/52.1b769c3f.js"><link rel="prefetch" href="/assets/js/53.dd0bc9d8.js"><link rel="prefetch" href="/assets/js/54.39176a80.js"><link rel="prefetch" href="/assets/js/55.573b9c31.js"><link rel="prefetch" href="/assets/js/56.b6a02619.js"><link rel="prefetch" href="/assets/js/57.f8ed8637.js"><link rel="prefetch" href="/assets/js/58.3c7e3293.js"><link rel="prefetch" href="/assets/js/59.a1bc011e.js"><link rel="prefetch" href="/assets/js/6.aa1ab838.js"><link rel="prefetch" href="/assets/js/60.3d64fb37.js"><link rel="prefetch" href="/assets/js/61.1d72bf34.js"><link rel="prefetch" href="/assets/js/62.ff909897.js"><link rel="prefetch" href="/assets/js/63.65e0c100.js"><link rel="prefetch" href="/assets/js/64.5b81f0b9.js"><link rel="prefetch" href="/assets/js/65.7b5fd5e7.js"><link rel="prefetch" href="/assets/js/66.10a94919.js"><link rel="prefetch" href="/assets/js/67.b4203de5.js"><link rel="prefetch" href="/assets/js/68.3334bcd9.js"><link rel="prefetch" href="/assets/js/69.076289e0.js"><link rel="prefetch" href="/assets/js/7.7f24f1db.js"><link rel="prefetch" href="/assets/js/70.d3dd1b6a.js"><link rel="prefetch" href="/assets/js/71.a63a7128.js"><link rel="prefetch" href="/assets/js/72.1ce4ef4e.js"><link rel="prefetch" href="/assets/js/73.1b194ce3.js"><link rel="prefetch" href="/assets/js/74.2cafcc32.js"><link rel="prefetch" href="/assets/js/75.811dfed4.js"><link rel="prefetch" href="/assets/js/76.9ecc5669.js"><link rel="prefetch" href="/assets/js/77.2d332363.js"><link rel="prefetch" href="/assets/js/78.1abbc712.js"><link rel="prefetch" href="/assets/js/79.7f694bba.js"><link rel="prefetch" href="/assets/js/8.dd0082e7.js"><link rel="prefetch" href="/assets/js/80.0c834a8c.js"><link rel="prefetch" href="/assets/js/81.e68b030b.js"><link rel="prefetch" href="/assets/js/82.ee15fd72.js"><link rel="prefetch" href="/assets/js/83.6630a350.js"><link rel="prefetch" href="/assets/js/84.c80210c2.js"><link rel="prefetch" href="/assets/js/85.84af9d91.js"><link rel="prefetch" href="/assets/js/86.c8eed3fa.js"><link rel="prefetch" href="/assets/js/87.158128c8.js"><link rel="prefetch" href="/assets/js/88.2d5efaec.js"><link rel="prefetch" href="/assets/js/89.e355abb7.js"><link rel="prefetch" href="/assets/js/9.d899d975.js"><link rel="prefetch" href="/assets/js/90.15e01064.js"><link rel="prefetch" href="/assets/js/91.a2f1ddf4.js"><link rel="prefetch" href="/assets/js/92.a40c425c.js"><link rel="prefetch" href="/assets/js/93.34101b59.js"><link rel="prefetch" href="/assets/js/94.2f5ec23e.js"><link rel="prefetch" href="/assets/js/95.7a3dabc9.js"><link rel="prefetch" href="/assets/js/96.2ecdb225.js"><link rel="prefetch" href="/assets/js/97.864e2d0f.js"><link rel="prefetch" href="/assets/js/98.3dad48c6.js"><link rel="prefetch" href="/assets/js/99.97e12689.js">
<link rel="stylesheet" href="/assets/css/0.styles.4bdbd8d9.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">Docker LNMP Docs</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">
使用指引
</a></div><div class="nav-item"><a href="/ee/" class="nav-link">
商业版
</a></div><div class="nav-item"><a href="https://github.com/khs1994-docker/lnmp" target="_blank" rel="noopener noreferrer" class="nav-link external">
GitHub
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://zan.khs1994.com" target="_blank" rel="noopener noreferrer" class="nav-link external">
捐赠
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div><div class="nav-item"><a href="https://cloud.tencent.com/act/cps/redirect?redirect=1077&cps_key=3a5255852d5db99dcd5da4c72f05df61&from=console" target="_blank" rel="noopener noreferrer" class="nav-link external">
腾讯云服务器限时秒杀
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></div> <!----></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>Introduction</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/" aria-current="page" class="sidebar-link">khs1994-docker/lnmp 支持文档</a></li><li><a href="/why.html" class="sidebar-link">项目初衷</a></li><li><a href="/docker.html" class="sidebar-link">安装 Docker</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>安装</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/install/linux.html" class="sidebar-link">Linux/macOS 上安装</a></li><li><a href="/install/windows.html" class="sidebar-link">Windows 上安装</a></li><li><a href="/mysql.html" class="sidebar-link">MySQL</a></li><li><a href="/update.html" class="sidebar-link">更新</a></li><li><a href="/cli.html" aria-current="page" class="active sidebar-link">命令行工具</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/cli.html#与-docker-compose-命令保持一致" class="sidebar-link">与 docker compose 命令保持一致</a></li><li class="sidebar-sub-header"><a href="/cli.html#自定义-cli" class="sidebar-link">自定义 CLI</a></li><li class="sidebar-sub-header"><a href="/cli.html#命令行补全" class="sidebar-link">命令行补全</a></li><li class="sidebar-sub-header"><a href="/cli.html#原始命令详解" class="sidebar-link">原始命令详解</a></li></ul></li><li><a href="/init.html" class="sidebar-link">初始化过程</a></li><li><a href="/path.html" class="sidebar-link">本地路径和 Docker 内路径对应关系</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>开发环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/development.html" class="sidebar-link">开发环境</a></li><li><a href="/phpmyadmin.html" class="sidebar-link">phpMyAdmin</a></li><li><a href="/custom.html" class="sidebar-link">个性化方案</a></li><li><a href="/lrew.html" class="sidebar-link">lrew</a></li><li><a href="/backup.html" class="sidebar-link">备份恢复</a></li><li><a href="/cleanup.html" class="sidebar-link">清理</a></li><li><a href="/config.html" class="sidebar-link">软件配置</a></li><li><a href="/port.html" class="sidebar-link">服务端口开放</a></li><li><a href="/command.html" class="sidebar-link">PHPer 常用命令容器化</a></li><li><a href="/lpm.html" class="sidebar-link">包管理工具 lpm</a></li><li><a href="/compose.html" class="sidebar-link">Docker Compose</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>nginx</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/nginx/" class="sidebar-link">NGINX</a></li><li><a href="/nginx/config.html" class="sidebar-link">一键生成 nginx 配置</a></li><li><a href="/nginx/issue-ssl.html" class="sidebar-link">申请 SSL 证书</a></li><li><a href="/nginx/https.html" class="sidebar-link">NGINX HTTPS 配置文件</a></li><li><a href="/nginx/unit.html" class="sidebar-link">NGINX Unit</a></li><li><a href="/nginx/arg.html" class="sidebar-link">Nginx 内置变量</a></li><li><a href="/nginx/http3.html" class="sidebar-link">http3</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>PHP</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/php.html" class="sidebar-link">PHP 扩展列表</a></li><li><a href="/xdebug.html" class="sidebar-link">Xdebug in Docker + PhpStorm</a></li><li><a href="/laravel.html" class="sidebar-link">Laravel 最佳实践</a></li><li><a href="/composer.html" class="sidebar-link">Composer 最佳实践</a></li><li><a href="/phpunit.html" class="sidebar-link">PHPUnit in Docker + PHPStorm 最佳实践</a></li><li><a href="/xhprof.html" class="sidebar-link">XHProf</a></li><li><a href="/swoole.html" class="sidebar-link">Swoole</a></li><li><a href="/composer/" class="sidebar-link">Composer</a></li><li><a href="/composer/satis.html" class="sidebar-link">Satis</a></li><li><a href="/symfony.html" class="sidebar-link">Symfony</a></li><li><a href="/php_eol.html" class="sidebar-link">使用 EOL 的 PHP 版本</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>生产环境</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/production.html" class="sidebar-link">配置</a></li><li><a href="/swarm/" class="sidebar-link">Docker Swarm</a></li><li><a href="/kubernetes/" class="sidebar-link">在 Kubernetes 集群部署 LNMP</a></li><li><a href="/kubernetes/docker-desktop.html" class="sidebar-link">K8s on Docker Desktop</a></li><li><a href="/registry.html" class="sidebar-link">Docker Registry</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>计划任务</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/crontab.html" class="sidebar-link">Crontab 计划任务</a></li><li><a href="/supervisord.html" class="sidebar-link">Supervisord</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>镜像构建</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/manifest.html" class="sidebar-link">构建支持多种架构的 Docker 镜像</a></li><li><a href="/buildx.html" class="sidebar-link">docker buildx</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>数据卷 Volumes</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/volumes/nfs.html" class="sidebar-link">NFS Volume(NFSv4)</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>集群</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/clusterkit/" class="sidebar-link">ClusterKit</a></li><li><a href="/clusterkit/memcached.html" class="sidebar-link">Memcached</a></li><li><a href="/clusterkit/mysql.html" class="sidebar-link">MySQL 复制</a></li><li><a href="/clusterkit/redis_cluster.html" class="sidebar-link">Redis 集群版 (redis-cli --cluster)</a></li><li><a href="/clusterkit/redis_replication.html" class="sidebar-link">Redis 主从版 (M-S) 复制模式 replication</a></li><li><a href="/clusterkit/redis_sentinel.html" class="sidebar-link">Redis 哨兵版 Sentinel</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>参考</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/dockerd.html" class="sidebar-link">dockerd</a></li><li><a href="/dockerfiles.html" class="sidebar-link">Dockerfile 注意事项</a></li><li><a href="/systemd.html" class="sidebar-link">systemd</a></li><li><a href="/journalctl.html" class="sidebar-link">systemd 日志管理</a></li><li><a href="/git.html" class="sidebar-link">Git Tips</a></li><li><a href="/gpg.html" class="sidebar-link">Git GPG</a></li><li><a href="/network.html" class="sidebar-link">国内网络问题</a></li><li><a href="/mirror.html" class="sidebar-link">Docker 常用镜像站点</a></li><li><a href="/windows/container.html" class="sidebar-link">Windows Container</a></li><li><a href="/arm.html" class="sidebar-link">ARM 架构</a></li><li><a href="/ab.html" class="sidebar-link">ab command</a></li><li><a href="/minio.html" class="sidebar-link">Minio</a></li><li><a href="/windows/wsl2.html" class="sidebar-link">WSL2</a></li><li><a href="/powershell.html" class="sidebar-link">PowerShell</a></li><li><a href="/go.html" class="sidebar-link">Go</a></li><li><a href="/github.html" class="sidebar-link">GitHub</a></li><li><a href="/vscode.html" class="sidebar-link">VSCode</a></li><li><a href="/cgroupv2.html" class="sidebar-link">cGroupv2</a></li><li><a href="/iscsi.html" class="sidebar-link">ISCSI</a></li><li><a href="/mount.html" class="sidebar-link">文件挂载相关命令</a></li><li><a href="/cfssl.html" class="sidebar-link">CFSSL</a></li><li><a href="/ssh.html" class="sidebar-link">SSH</a></li><li><a href="/encrypt.html" class="sidebar-link">加解密文件</a></li><li><a href="/coding/ci.html" class="sidebar-link">【玩转腾讯云】在 CODING DevOps 持续集成中使用 Buildx 构建 Docker 镜像</a></li></ul></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="命令行工具"><a href="#命令行工具" class="header-anchor">#</a> 命令行工具</h1> <p>为避免输入过多的命令,本项目提供了 <strong>命令行</strong> 工具 <code>lnmp-docker</code> 来简化操作:</p> <ul><li><p>各种场景和架构中一键启动</p></li> <li><p>便捷生成 <code>NGINX</code> <code>APACHE</code> 配置文件</p></li></ul> <h2 id="与-docker-compose-命令保持一致"><a href="#与-docker-compose-命令保持一致" class="header-anchor">#</a> 与 docker compose 命令保持一致</h2> <p>例如 <code>lnmp-docker up | down</code> 对应着 <code>docker compose up | down</code></p> <h2 id="自定义-cli"><a href="#自定义-cli" class="header-anchor">#</a> 自定义 CLI</h2> <p>可以在 <code>lnmp-docker-custom-script</code> 或 <code>lnmp-docker-custom-script.ps1</code> (Windows) 中编写自定义脚本。</p> <p><strong>例如:</strong> 你需要在执行 <code>lnmp-docker up</code> 命令前执行一些操作那么可以编写 <code>__lnmp_custom_pre_up</code> 函数,命令后执行一些操作那么可以编写 <code>__lnmp_custom_post_up</code> 函数。</p> <h2 id="命令行补全"><a href="#命令行补全" class="header-anchor">#</a> 命令行补全</h2> <p>设置环境变量 <code>LNMP_PATH</code> 为本项目的绝对路径(下面以 <code>/data/lnmp</code> 为例,实际请替换为你自己的路径),并加入到 <code>PATH</code>,这样你就可以在任意目录使用本项目的 CLI。</p> <h3 id="_1-bash"><a href="#_1-bash" class="header-anchor">#</a> 1. Bash</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vi</span> ~/.bash_profile
<span class="token builtin class-name">export</span> <span class="token assign-left variable">LNMP_PATH</span><span class="token operator">=</span>/data/lnmp
<span class="token builtin class-name">export</span> <span class="token assign-left variable"><span class="token environment constant">PATH</span></span><span class="token operator">=</span><span class="token variable">$LNMP_PATH</span><span class="token builtin class-name">:</span><span class="token variable">$LNMP_PATH</span>/bin:<span class="token environment constant">$PATH</span>
</code></pre></div><h4 id="linux"><a href="#linux" class="header-anchor">#</a> Linux</h4> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token variable">$LNMP_PATH</span>/scripts/cli/completion/bash/lnmp-docker /etc/bash_completion.d/lnmp-docker
</code></pre></div><h4 id="macos"><a href="#macos" class="header-anchor">#</a> macOS</h4> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">sudo</span> <span class="token function">ln</span> -s <span class="token variable">$LNMP_PATH</span>/scripts/cli/completion/bash/lnmp-docker /usr/local/etc/bash_completion.d/lnmp-docker
</code></pre></div><h3 id="_2-fish"><a href="#_2-fish" class="header-anchor">#</a> 2. fish</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token builtin class-name">set</span> -Ux LNMP_PATH /data/lnmp
$ <span class="token function">ln</span> -s <span class="token variable">$LNMP_PATH</span>/scripts/cli/completion/fish/lnmp-docker.fish ~/.config/fish/completions/
</code></pre></div><blockquote><p>删除环境变量 <code>$ set -Ue LNMP_PATH</code></p></blockquote> <h3 id="_3-zsh"><a href="#_3-zsh" class="header-anchor">#</a> 3. zsh</h3> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token function">vi</span> ~/.zshrc
<span class="token builtin class-name">export</span> <span class="token assign-left variable">LNMP_PATH</span><span class="token operator">=</span>/data/lnmp
<span class="token builtin class-name">export</span> <span class="token assign-left variable"><span class="token environment constant">PATH</span></span><span class="token operator">=</span><span class="token variable">$LNMP_PATH</span><span class="token builtin class-name">:</span><span class="token variable">$LNMP_PATH</span>/bin:<span class="token environment constant">$PATH</span>
</code></pre></div><h2 id="原始命令详解"><a href="#原始命令详解" class="header-anchor">#</a> 原始命令详解</h2> <h3 id="初始化"><a href="#初始化" class="header-anchor">#</a> 初始化</h3> <p>请查看 <a href="/init.html">项目初始化过程</a>。</p> <h3 id="docker-compose-原始命令"><a href="#docker-compose-原始命令" class="header-anchor">#</a> docker compose 原始命令</h3> <p>使用 <code>docker compose</code> 来启动、停止、销毁容器的参数分别是 <code>up -d</code> <code>stop</code> <code>down</code>,通过 <code>-f</code> 来加载 <code>docker-compose.yml</code> (可以任意命名),本项目的 CLI 就是对以上一些命令的封装。</p> <table><thead><tr><th style="text-align:left;">场景</th> <th style="text-align:left;">CLI</th> <th style="text-align:left;">原始命令</th></tr></thead> <tbody><tr><td style="text-align:left;">开发环境</td> <td style="text-align:left;"><code>$ ./lnmp-docker up</code></td> <td style="text-align:left;"><code>docker compose -f docker-lnmp.yml -f docker-lnmp.override.yml up -d</code></td></tr> <tr><td style="text-align:left;">生产环境</td> <td style="text-align:left;"><code>$ ./lnmp-docker swarm-deploy</code></td> <td style="text-align:left;"><code>docker stack -c docker-production.yml lnmp</code></td></tr></tbody></table> <blockquote><p><code>docker-lnmp.override.yaml</code> 是为了重写 <code>docker-lnmp.yaml</code>,执行 <code>docker compose up -d</code> 会默认加载该文件。</p></blockquote> <p>你可以使用 <code>config</code> 命令查看最终的 <code>docker compose</code> 配置文件。</p> <h3 id="使用-docker-compose-命令"><a href="#使用-docker-compose-命令" class="header-anchor">#</a> 使用 docker compose 命令</h3> <blockquote><p>我就是不想使用你提供的 <code>lnmp-docker</code> <code>CLI</code>,我就要使用 <code>docker compose</code> 命令,怎们办?</p></blockquote> <p>本项目支持生成标准的 <code>docker-compose.yml</code> 文件,执行以下命令即可。</p> <p><strong>注意: 每次修改 .env 文件,必须重新执行此命令</strong></p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ ./lnmp-docker config <span class="token operator">></span> docker-compose.yml
</code></pre></div><p>之后就可以使用 <code>docker compose</code> 命令</p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ docker compose up -d <span class="token variable"><span class="token variable">$(</span>./lnmp-docker services<span class="token variable">)</span></span>
$ docker compose down
</code></pre></div><h3 id="根据环境的不同使用不同的-env-lnmp-env-文件"><a href="#根据环境的不同使用不同的-env-lnmp-env-文件" class="header-anchor">#</a> 根据环境的不同使用不同的 <code>.env.${LNMP_ENV}</code> 文件</h3> <blockquote><p>原理:使用 compose 1.25.0 新增的 <code>--env-file PATH</code> 选项</p></blockquote> <p>假设你需要在 <code>development(开发)</code> <code>production(生产)</code> 两个环境中使用本项目</p> <p>那么在 <code>development</code> 环境中,新增 <code>.env.development</code> 文件(内容参照 <code>.env.example</code>),并设置环境变量 <code>LNMP_ENV=development</code></p> <div class="language-bash extra-class"><pre class="language-bash"><code>$ <span class="token builtin class-name">export</span> <span class="token assign-left variable">LNMP_ENV</span><span class="token operator">=</span>development
<span class="token comment"># windows powershell</span>
<span class="token comment"># $env:LNMP_ENV="development"</span>
$ ./lnmp-docker
</code></pre></div><p><code>production</code> 环境同理,不再赘述。</p> <blockquote><p>注意,本项目不会自动生成 <code>.env.${LNMP_ENV}</code> 文件,如果找不到 <code>.env.${LNMP_ENV}</code> 文件,将使用 <code>.env</code> 文件。</p></blockquote></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/khs1994-docker/lnmp/edit/master/docs/cli.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
←
<a href="/update.html" class="prev">
更新
</a></span> <span class="next"><a href="/init.html">
初始化过程
</a>
→
</span></p></div> </main></div><div class="global-ui"></div></div>
<script src="/assets/js/app.209f2259.js" defer></script><script src="/assets/js/2.8af6cdaa.js" defer></script><script src="/assets/js/20.21128e97.js" defer></script>
</body>
</html>