基于docker-compose+Django编排部署博客系统
DjangoBlog应用系统部署
一、环境准备
[root@k8s-master-node1 ~]# tar -zxvf DjangoBlog.tar.gz
[root@k8s-master-node1 ~]# cd DjangoBlog/
[root@k8s-master-node1 DjangoBlog]# docker load -i CentOS_7.9.2009.tar
Loaded image: centos:centos7.9.2009
[root@k8s-master-node1 DjangoBlog]# vim local.repo
[yum]
name=yum
baseurl=file:///root/yum
gpgcheck=0
enabled=1
二、容器化Memcached服务
在master节点/root/DjangoBlog目录下编写Dockerfile-memcached文件构建blog-memcached:v1.0镜像,具体要求如下:
(1)基础镜像:centos:7.9.2009;
(2)完成memcached服务的安装;
(3)声明端口:11211;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
[root@k8s-master-node1 DjangoBlog]# vim Dockerfile-memcached
FROM centos:centos7.9.2009
RUN rm -rf /etc/yum.repos.d/*
ADD local.repo /etc/yum.repos.d/
ADD yum /root/yum
RUN yum install memcached libevent libevent-devel -y
EXPOSE 11211
ENTRYPOINT /usr/bin/memcached -u root
[root@k8s-master-node1 DjangoBlog]# docker build -t blog-memcached:v1.0 -f Dockerfile-memcached .
三、容器化Mariadb服务
在master节点/root/DjangoBlog目录下编写Dockerfile-mariadb文件构建blog-mysql:v1.0镜像,具体要求如下:
(1)基础镜像:centos:7.9.2009;
(2)安装MariaDB服务并设置root用户的密码为root;
(3)创建数据库djangoblog并将sqlfile.sql导入该数据库;
(4)声明端口:3306;
(5)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
(1)编写Dockerfile
编写数据库初始化脚本:
[root@master DjangoBlog]# vi mysql_init.sh
#!/bin/bash
mysql_install_db --user=root
mysqld_safe --user=root &
sleep 8
mysqladmin -u root password 'root'
mysql -uroot -proot -e "grant all on *.* to 'root'@'%' identified by 'root';flush privileges;"
mysql -uroot -proot -e "create database djangoblog;use djangoblog;source /opt/sqlfile.sql;"
##编写Dockerfile文件:
[root@master DjangoBlog]# vi Dockerfile-mariadb
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
ENV LC_ALL en_US.UTF-8
RUN yum -y install mariadb-server
COPY mysql_init.sh /opt/
COPY sqlfile.sql /opt
RUN bash /opt/mysql_init.sh
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]
[root@k8s-master-node1 DjangoBlog]# docker build -t blog-mysql:v1.0 -f Dockerfile-mariadb .
四、容器化前端服务
在master节点/root/DjangoBlog目录下编写Dockerfile-nginx文件构建blog-nginx:v1.0镜像,具体要求如下:
(1)基础镜像:centos:7.9.2009;
(2)安装nginx服务;
(3)使用提供的nginx.conf作为默认的配置文件;
(3)声明端口:80;
(4)设置服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框。
[root@k8s-master-node1 DjangoBlog]# vim Dockerfile-nginx
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
RUN yum -y install nginx
ADD nginx.conf /etc/nginx/nginx.conf
RUN /bin/bash -c 'echo init ok'
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
[root@k8s-master-node1 DjangoBlog]# docker build -t blog-nginx:v1.0 -f Dockerfile-nginx .
五、容器化Blog服务
在master节点/root/DjangoBlog目录下编写Dockerfile-blog文件构建blog-service:v1.0镜像,具体要求如下:
(1)基础镜像:centos:7.9.2009;
(2)安装Python3.6环境;
(3)使用pip3工具离线安装requirements.txt中的软件包;
(4)安装DjangoBlog服务;
(5)声明端口:8000;
(6)设置DjangoBlog服务开机自启。
完成后构建镜像,并提交master节点的用户名、密码和IP地址到答题框
[root@k8s-master-node1 DjangoBlog]# vim Dockerfile-blog
FROM centos:centos7.9.2009
RUN rm -rf /etc/yum.repos.d/*
COPY local.repo /etc/yum.repos.d/
COPY yum /root/yum
RUN yum install -y `yum list all|grep devel |grep -i -v mariadb |awk '{print $1}'` gcc make zlib*
ADD Python-3.6.5.tgz /usr/local/
RUN cd /usr/local/Python-3.6.5 && ./configure && make && make install
RUN ln -s /usr/local/python3/bin/python3 /usr/bin/python3
RUN ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
ADD requirements.txt requirements.txt
COPY Python-pip /opt
RUN pip3 install --upgrade pip --no-index --find-links=/opt
RUN pip3 install -r requirements.txt --no-index --find-links=/opt
RUN pip3 install gunicorn[gevent] --no-index --find-links=/opt
RUN pip3 cache purge
RUN mkdir -p /code/djangoBlog
ADD . /code/djangoBlog
RUN chmod +x /code/djangoBlog/bin/docker_start.sh
EXPOSE 8000
ENTRYPOINT ["/code/djangoBlog/bin/docker_start.sh"]
[root@k8s-master-node1 DjangoBlog]# docker build -t blog-service:v1.0 -f Dockerfile-blog .
六、编排部署博客系统
在master节点/root/DjangoBlog目录下编写docker-compose.yaml文件,具体要求如下:
(1)容器1名称:blog-memcached;镜像:blog-memcached:v1.0;端口映射:11211:11211;
(2)容器2名称:blog-mysql;镜像:blog-mysql:v1.0;端口映射:3306:3306;
(3)容器3名称:blog-nginx;镜像:blog-nginx:v1.0;端口映射:80:8888;
(4)容器4名称:blog-service;镜像:blog-service:v1.0;端口映射:8000:8000。
完成后编排部署该博客系统,并提交master节点的用户名、密码和IP地址到答题框。
[root@k8s-master-node1 DjangoBlog]# vim docker-compose.yaml
version: '3'
services:
memcached:
container_name: blog-memcached
image: blog-memcached:v1.0
restart: always
ports:
- "11211:11211"
db:
container_name: blog-mysql
image: blog-mysql:v1.0
restart: always
ports:
- 3306:3306
environment:
- MYSQL_DATABASE=djangoblog
- MYSQL_ROOT_PASSWORD=root
depends_on:
- memcached
djangoblog:
container_name: blog-service
image: blog-service:v1.0
restart: always
ports:
- "8000:8000"
environment:
- DJANGO_MYSQL_DATABASE=djangoblog
- DJANGO_MYSQL_USER=root
- DJANGO_MYSQL_PASSWORD=root
- DJANGO_MYSQL_HOST=db
- DJANGO_MYSQL_PORT=3306
- DJANGO_MEMCACHED_LOCATION=memcached:11211
volumes:
- ./collectedstatic:/code/djangoBlog/collectedstatic
links:
- db
- memcached
depends_on:
- db
nginx:
container_name: blog-nginx
image: blog-nginx:v1.0
restart: always
ports:
- "8888:80"
- "443:443"
links:
- djangoblog:djangoblog
volumes:
- ./collectedstatic:/code/djangoBlog/collectedstatic
[root@k8s-master-node1 DjangoBlog]# docker-compose up -d
[+] Running 5/5
⠿ Network djangoblog_default Created 0.1s
⠿ Container blog-memcached Started 0.8s
⠿ Container blog-mysql Started 1.9s
⠿ Container blog-service Started 3.1s
⠿ Container blog-nginx Started 5.2s
[root@k8s-master-node1 DjangoBlog]# docker-compose ps
NAME COMMAND SERVICE STATUS PORTS
blog-memcached "/bin/sh -c '/usr/bi…" blog-memcached running 0.0.0.0:11211->11211/tcp, :::11211->11211/tcp
blog-mysql "mysqld_safe --user=…" blog-mysql running 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp
blog-nginx "nginx -g 'daemon of…" blog-nginx running 0.0.0.0:8888->80/tcp, 0.0.0.0:443->443/tcp, :::8888->80/tcp, :::443->443/tcp
blog-service "/code/djangoBlog/bi…" blog-service running 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp
浏览器访问http:ip:8000,登录系统(admin/123456),如图所示:
点击“管理站点”,如图所示:
本文由博客一文多发平台 OpenWrite 发布!
共同學(xué)習(xí),寫下你的評論
評論加載中...
作者其他優(yōu)質(zhì)文章