新增docker用法和说明;

This commit is contained in:
2024-04-07 22:45:58 +08:00
parent c0b5880ae1
commit fc07f22253
4 changed files with 104 additions and 24 deletions

View File

@@ -235,4 +235,67 @@ vscode中liveSassCompiler的配置:
```
### docker
内置了docker打包命令,打包出的镜像支持两种调用方法
#### 打包镜像
下面给出的命令指定了标签名,可自行替换。
使用以下命令打包时,相同的名称不会覆盖,名称会被新的镜像占用,因此用第二行以时间为版本名的方式,调试起来更方面。
```
docker build -t ulthon/ulthon_admin:v1 .
docker build -t ulthon/ulthon_admin:202404071454 .
```
#### 运行镜像
下面的命令中为容器指定了名字,可自行替换。
相同名称不能重复运行,所以指定名字是个好习惯,否则docker会自动起名。
```
docker run -d \
-p 88:80 \
-v /data/ulthon_admin/runtime:/var/www/html/runtime \
-v /data/ulthon_admin/storage:/var/www/html/public/storage \
-v /data/ulthon_admin/build:/var/www/html/public/build \
-v /data/ulthon_admin/safe_storage:/var/www/html/storage \
--name ulthon_admin ulthon/ulthon_admin:202404071454 \
server
```
- 端口:需要暴露80端口,冒号左侧可自定义,修改为本机可用的一个端口。
- runtime:需要映射runtime目录,冒号左侧可自定义,修改为指定的目录,推荐设置,因为缓存、日志等文件都保存在这个目录下,不指定的话,重启丢失。
- public/storage:框架默认的上传文件存储在public/storage下,因此必须映射该目录,如果系统不需要上传,则可以不设置。
- public/build:框架默认的生成文件(比如海报、二维码)存储在public/build下,推荐映射,否则重启后丢失。
- storage:框架设计了一个安全存储的位置,相对于storage在public下,storage在项目根目录下,因此无法直接请求到,相对安全,此时只能通过相关支持认证的控制器访问,因此更安全,可以用于存储身份证等敏感信息,但此机制大多数项目用不到,如果用到了必须要设置。
- 后端运行,`-d`参数可以让docker在后端运行。
如果有其他指定的目录,可在Dockerfile中自行添加,在命令中映射。
> 如果不映射目录,镜像不会出错,但重启后丢失。
#### 基本用法
内置了docker打包命令,打包出的镜像支持两种调用方法:
- server或空
- think
有两个基本的用法,运行镜像后,如果在最后增加任何参数或者增加server,会启用镜像中的php-fpm和nginx,使用`-d`后自动运行到后台,相当于框架一键运行。
如果以think开始传参,则是调用think命令,比如`docker run xxxxx think admin:version`,是调用内置命令。
> 实际上可以不以think开始,也可以是其他路径的php文件,但这里不过多讨论
#### 其他常用命令
```bash
# 一键删除停止的容器
docker rm $(sudo docker ps -a -q)
# 导出镜像
docker save e950efa97445 > ulthon_admin.tar
# 导入镜像
docker load < ulthon_admin.tar
```