# docker-sanic-example **Repository Path**: towardly/docker-sanic-example ## Basic Information - **Project Name**: docker-sanic-example - **Description**: 使用 docker 部署 python sanic web 应用的基本例子 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-01-06 - **Last Updated**: 2024-01-31 ## Categories & Tags **Categories**: Uncategorized **Tags**: Docker, Web, SANIC ## README # ssp_server --- 使用 docker 部署 python sanic web 应用的基本例子。以及一些 `docker` 的常用使用命令。 ## 部署流程 ### 1. 构建镜像 ``` docker build -t sanic-e-image . ``` 1. `-t`:指定要创建的目标镜像名为 `sanic-e-image` 2. `.`: `Dockerfile` 文件所在目录 ### 2. 运行容器 ``` docker run -itd -p 8000:8000 --name server sanic-e-image python server.py ``` 1. `-d`: 作为后台运行 2. `-i`: 以交互模式运行容器,通常与 `-t` 同时使用 3. `-t`: 为容器重新分配一个伪输入终端,通常与 `-i` 同时使用 4. `-p`: 指定端口映射,格式为:`主机(宿主)端口:容器端口` ### 3. 配置 `nginx` 先更改 `nginx` 全局代理配置,如果 `nginx` 为通过宝塔安装的,文件地址为:`/www/server/nginx/conf/proxy.conf`,如果为单独安装的,地址为:`nginx/conf.d/forwarded.conf`, 内容请参考:[Sanic](https://sanic.dev/zh/guide/deployment/nginx.html#%E4%BB%A3%E7%90%86-sanic-proxied-sanic-app); 然后运行配置修改。 ## 其余的 `docker` 指令介绍 更多基础的 `docker` 使用介绍,可以参考 [Docker 基础教程](https://www.runoob.com/docker/docker-image-usage.html) ### 1. `docker images`: 列出本地主机上的镜像 ### 2. `docker rmi sanic-e-image -f`: 删除镜像, `sanic-e-image` 为镜像名称 ### 3. `docker ps -a`: 列表容器列表 ### 3. `docker rm -f server`: 删除容器, `server` 为容器名称 ### 4. `docker container prune`: 删除所有停止运行的容器 ### 5. `docker image prune -a`: 删除所有未被容器使用的镜像 ### 6. `docker stop server`: 停止容器 ### 7. `docker restart server`: 重启容器 ### 8. `docker cp ./app server:/project/`: 复制 `app` 目录到 容器 `server` 的 `project` 目录下 1. `-f`: 强制删除 2. `-a`: 列出所有 3. `server`: 为容器名称,可以取任意值 ## 完整的应用运行流程 ### 1. 第一次部署 流程就是上述的部署流程的步骤 ### 2. 后续更改源文件后的部署 #### 2.1 `requirements.txt` 有变化 1. 重新编译:`docker build -t stock_chart .` 2. 更新源文件:`docker cp ./app server:/project/` 3. 重启容器: `docker restart server` #### 2.2 `requirements.txt` 无变化,只是更新源文件 1. 更新源文件:`docker cp ./app server:/project/` 2. 重启容器:`docker restart server`