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

一、阅读建议

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

不过,新人建议从头到尾实践,也不失为“笨办法学 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 数据库的安装步骤(https://www.jb51.net/article/93202.htm)

首先,把你的宿主机 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 映射配置文件出来

指定数据库编码 utf8mb4,参考:mysql 使用 utf8mb4 经验吐血总结

$ 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 && docker build -t mydjango:latest .

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值