docker mariadb集群_Docker搭建Django+Mariadb环境

本文详细介绍了如何使用Docker搭建Django应用与MariaDB数据库的环境。首先,通过拉取MariaDB镜像并配置数据目录和端口映射来设置数据库。接着,基于Python 2.7创建Django镜像,编写Dockerfile和requirements.txt文件,然后构建和运行Django容器。最后,通过Docker Compose实现Django应用与MariaDB的链接,完成集群环境的构建。
摘要由CSDN通过智能技术生成

Docker搭建Django+Mariadb环境

[TOC]

阅读建议

先通读全文后,再自行决定需要实践的步骤。后文总是有更简洁更快更好的实践。

不过,新人建议从头到尾实践,也不失为“笨办法学Docker”的美谈一桩。

本文思路:

直接拉取Mariadb镜像,搭建数据库

手动Build Django镜像:

以python2.7为基础镜像

让我们做的更好:以Python2.7-slim为基础镜像的优化

"docker -v"&&"docker --link"

源码:git@github.com:AnInputForce/autodepopy.git

基本上是边学边实验,关键步骤都有commit。请各位参考。

环境之“Docker-Mariadb”搭建

参考:在Mac中直接安装Maridb(不推荐),Mac中MariaDB数据库的安装步骤

首先,把你的宿主机mac或linux装上tree命令。没有也没关系,下文有相关的换成ls即可;

下载Mariadb数据库镜像

docker pull mariadb

启动并配置DB映射数据库数据文件和配置文件新建~/mariadb/data 、~/mariadb/custom目录

-v ~/mariadb/data:/var/lib/mysql 映射数据文件出来

-v ~/mariadb/custom:/etc/mysql/conf.d 映射配置文件出来

$ mkdir -p ~/mariadb/data ~/mariadb/custom

$ docker run --name my-mariadb -v ~/mariadb/data:/var/lib/mysql -v ~/mariadb/custom:/etc/mysql/conf.d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=1q2w -d mariadb:latest --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

测试验证

$ docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

77de3a6bf3fe mariadb:latest "docker-entrypoint..." 2 minutes ago Up About a minute 0.0.0.0:3306->3306/tcp my-mariadb

$ docker exec -it my-mariadb bash

root@77de3a6bf3fe:/# mysql -uroot -p1q2w

Welcome to the MariaDB monitor. Commands end with ; or \g.

....

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

+--------------------+

3 rows in set (0.02 sec)

环境之“Docker-Django”搭建

很意外,翻了翻官方hub 镜像,有如下提示:This image is officially deprecated in favor of the standard python image;

大致意思是:这个镜像已被标准python镜像取代。该镜像不能直接带来Django环境,仅有的价值是提供一些Django依赖如mysql-client等。或许因为Django是APP级的,依赖于Project的requirements.txt,like this:

只能自己动手,丰衣足食了。正好练练刚学习到的知识。

准备项目目录workspace 工作空间,所有项目大本营:自己习惯

autodeploy 自动部署项目的目录:自己习惯

z-dev 存放开发环境dockerfile及相关信息:自己习惯

z-pub 存放生产环境dockerfile及相关信息:自己习惯

.dockerignore 存放不被镜像build时关注的文件:来自Vscode。linux下不可见,具体内容详见此项目github;

$ mkdir -p ~/workspace/autodeploy && cd ~/workspace/autodeploy && mkdir z-dev z-pub

创建Dockerfile

直接使用Python2.7基础镜像,简单粗暴省事,适合想快速体验的孩子:

# 基础镜像

FROM python:2.7

# 维护者信息

MAINTAINER kang.cunhua

# app 所在目录

WORKDIR /usr/local/web

ADD . /usr/local/web/

# 安装 app 所需依赖

RUN pip install --no-cache-dir -r requirements.txt

创建requirements.txt

Django==1.11.3

MySQL-python

宿主机当前目录结构

ChinaDreams:autodeploy kangcunhua$ tree

.

├── readme.md

├── z-dev

│ ├── Dockerfile

│ └── requirements.txt

└── z-pub

└── Dockerfile

2 directories, 4 files

Build镜像

当前目录:~\workspace\autodeploy

cd z-dev &&

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值