以下内容为原创,转载请注明出处!

今天,我们将利用docker部署django restful api 服务。

  • 下拉python镜像(现在hub.docker.com上不推荐使用django镜像,所以我们用python镜像)

docker pull python:3.6
  • 编辑Dockerfile,(该文件与项目apply_api同级):

  • vim Dockerfile

FROM python:3.6
MAINTAINER duankeke<669090202@qq.cn>
COPY apply_api /apply_api
WORKDIR /apply_api
RUN pip install -r requirements.txt
  • 编辑build脚本:

  • 主要是为了方便执行,不需要每次都输入一堆命令。新建镜像,打Tag为apply-api-server:v2.0,在当前目录执行

  • vim build.sh。

docker build -t apply-api-server:v2.0 .
  • 启动docker服务:

  • 以后台启动,指定端口, 后面接命令。注意django中的数据库设置,因为需要在容器内访问外部,所以需要打开外部访问。

docker run -d -p 9003:9003 --rm apply-api-server:v2.0 python manage.py runserver 0.0.0.0:9003
  • 修改mysql配置,这里配置的是:容器内访问主机本地localhost数据库

  • 设置mysql远程可以访问

进入mysql
mysql -uroot -p
直接授权
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION;
刷新权限
FLUSH PRIVILEGES
  • 修改my.cnf

  • mac电脑:

vim /usr/local/etc/my.cnfbind-address 改为0.0.0.0
  • ubuntu:

vim /etc/mysql/mysql.conf.d/mysqld.cnf注释bind-address
  • 重启mysql

service mysql restart
  • 查看是否配置成功

netstat -an|grep 3306

出现以下说明成功:
tcp6       0      0 :::3306                 :::*                    LISTEN