新增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
```