从docker到docker-compose部署一个nginx+flask+mysql+redis应用

 

一、安装docker

  Docker 运行在 CentOS 7 上,要求系统为64位、系统内核版本为 3.10 以上。通过 uname -r 命令查看当前的内核版本

  更新yum

sudo yum update

  移除旧版本

sudo yum remove docker                   docker-client                   docker-client-latest                   docker-common                   docker-latest                   docker-latest-logrotate                   docker-logrotate                   docker-selinux                   docker-engine-selinux                   docker-engine

  安装系统工具

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

  添加软件源

sudo yum-config-manager --add-repo upload/201811101104204123.gif" alt="复制代码" style="margin: 0px; padding: 0px; max-width: 800px; height: auto; border: none !important;" />

docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=*** -d mysql docker run --name redis -d redis:3.2 redis-server --appendonly yes
复制代码

 

  2、部署flask应用

  一开始我直接拉了一个centos镜像,然后再装python3、requirement.txt,但是后来发现直接用python:3.6的镜像会简单一点。

  首先,把项目复制到服务器

scp -r 本地文件夹 root@服务器公网ip:服务器目标文件夹

 

  然后,创建一个Dockerfile,用于将应用build成镜像

  目录结构如下

 

  Dockerfile的内容

复制代码
FROM python:3.6ADD ./my-chat-server /app WORKDIR /app RUN pip install -r requirement.txt CMD ["python", "run.py"]
复制代码

  RUN与CMD的区别在于,RUN是在创建镜像的时候执行的,而CMD在这个镜像创建的容器每次启动时都会执行

  ADD与COPY的区别在于,ADD可以写成 ADD http://foo.com/bar.go /tmp/main.go 或 ADD /foo.tar.gz /tmp/ 用于下载一个文件到容器中或者将一个压缩文件解压到容器中。

 

 

  然后,在flask目录执行

docker build -t flask .

  这会创建一个名为flask的镜像

 

  然后启动这个镜像

docker run --name flask -p 5000:5000 --link mysql:mysql --link redis:redis-server -d flask

关键字:
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信