# dockerfile_python2 **Repository Path**: hjh1023/dockerfile_python2 ## Basic Information - **Project Name**: dockerfile_python2 - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-25 - **Last Updated**: 2021-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 自定义docker使用说明 > 一步到位制定你所需要的项目docker镜像,制作完成跑起来即可访问应用。 > > `注意`:请将你的项目放置在命令运行的目录,Dockerfile中会有`COPY custom /app/project/custom/`命令将你的项目拷贝到镜像中。 > > `注意`:requirement 和 requirement2 根据你自己的项目来,其中requirement2是安装不上需要强制升级的包。 > > `注意`:dockerfile中暴露端口根据自己需要增加。 > > `提示`:失败一次不可怕,可怕的是失败了就不敢尝试第二次。 ##### 命令提示 > `创建镜像命令:docker build . -t docker_name` > > `启动镜像为容器:docker run -idt --name container_name -p 80:80 -p 8000:8000 docker_name` > > `查看容器情况:docker ps` > > `进入容器:docker exec -it container_name bash` > > `保存镜像到本地:docker save -o custom.tar docker_name # -o:指定保存的镜像的名字` > > `从本地导入镜像:docker load --input custom.tar 或 docker load < custom.tar` > > `删除因失败带来的none/奇怪名字的镜像/容器:` > > `删除容器:docker rm $(docker ps -a | grep "Exited" | awk '{print $1 }')` > > `删除镜像:docker rmi $(docker images | grep "none" | awk '{print $3}')` - #### Dockerfile > 如果有问题build时有问题,尝试修改对应命令后重新跑。 > > `docker build . -t name`命令目录不要放太多无用文件,创建时docker会讲这个目录下所有文件发送至docker服务器。 ##### 根据需求安装程序/依赖包 ![](./images/require_package.png) ##### 替换requirements.txt和requirements2.txt > 之所以用两个依赖文件是因为有依赖包安装会报错,这里需要强制升级才行。 ![](./images/pip_install.png) - #### nginx > 确保nginx的配置转发和静态路径没有问题,保证nginx能够启动。 ##### 根据项目需求修改转发路径/静态文件 ![](./images/nginx.png) - #### gunicorn > gunicorn配置文件时py结尾,这个是因为gunicorn报错。在这个版本中是否会报错,暂时还没有测试。 > > pid/log这些路径在dockerfile中定义,如果有修改要两边对上。 ![](./images/gunicorn.png) - #### supervisor > supervisor主要时用来接管nginx和gunicorn的进程,/startup.sh中启动内容就是启动supervisor。 > > 如果你不需要nginx或者gunicorn,记得在配置文件中把对应的启动配置删掉。 > > 如果`supervisorctl`需要用户名密码,在配置文件`[inet_http_server]`有写用户名和密码(123/123)。 ##### 程序配置信息注意事项 ![](./images/supervisor.png) - #### startup > 内容是启动supervisor,这一步很重要,如果是windows环境dockerfile中的转换命令很重要,否则build失败日志种会出现unix的错误。 > > 查看docker启动日志:`docker logs --tail 20 docker_name`