使用Dockerfile部署简单的应用
1、首先在centos安装uwsgi模块的时候可能会出现如下问题:<python.h>文件找不到,这是因为我们的一起前提环境没有安装好
1 2 3 4 5 | 1、搜索相应的前提环境 yum search python36-devel 2、 搜索出来的包进行安装 yum install python36-devel.x86_64 |
2、基于最基础的centos系统构建,基础的自定义基础镜像,Dockerfile如下:
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 | FROM centos: 7.6 . 1810 #安装 RUN set - ex \ # 预安装所需组件 && yum install - y wget tar libffi - devel zlib - devel bzip2 - devel openssl - devel ncurses - devel sqlite - devel readline - devel tk - devel gcc make initscripts \ && yum install - y python36 \ && yum install - y epel - release \ && yum install - y python - pip # 基础环境配置 RUN set - ex \ # 修改系统时区为东八区 && rm - rf / etc / localtime \ && ln - s / usr / share / zoneinfo / Asia / Shanghai / etc / localtime \ && yum install - y vim \ # 安装定时任务组件 && yum - y install cronie # 支持中文 RUN yum install kde - l10n - Chinese - y RUN localedef - c - f UTF - 8 - i zh_CN zh_CN.utf8 # 更新pip版本 RUN pip install - - upgrade pip ENV LC_ALL zh_CN.UTF - 8 yum install - y nginx |
使用命令:docker build -t mycentos:2 .
3、已知基础镜像具有python、nginx了,下面我们写一个应用的Dockerfile文件
1 2 3 4 5 | # 假如第二部的基础镜像是mycentos:2 FROM mycentos: 2 EXPOSE 80 CMD nginx |
使用命令:docker build -t my_nginx:2 . (这里的是在新的Dockerfile文件目录中敲命令)
创建好镜像后,使用如下命令创建容器: docker run -itd --name demo -p 8000:80 my_nginx:2 /bin/bash; 最后说明哈,如果docker的运行必须要又一个前台程序,否则你启动容器马上就退出了,所以这里使用了-it
4、如果使用 netstat -tlunp 命令查看网络状态,看看是否8000端口监听服务,使用 curl -i localhost:8000 看看是否有回显,没有的话可以进入容器来看看是否正常,最后如果外网无法访问8000端口,如果不能则看看是否防火墙关闭,阿里的策略开启,最后如果还是不行的话,使用netstat -tlunp命令看看8000端口是否是tcp6,如果是则:
1 2 3 | 1 、 vim / usr / lib / sysctl.d / 00 - system.conf, 添加一行:net.ipv4.ip_forward = 1 2 、重启网络:systemctl restart network 3 、重启docker:systemctl restart docker.service |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步