以下内容为原创,转载请注明出处!
今天,我们将利用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