当前位置: 首页 > news >正文

基于docker-compose 部署可道云资源管理器

容器编排Explorer

    • 容器化部署MariaDB
    • 容器化部署Redis
    • 容器化部署PHP
    • 容器化部署Nginx
    • 编排部署compose服务

var code = “9861ce02-1202-405b-b419-4dddd337aaa7”

GitHub官网

KodExplorer 是一款网页文件管理器。它也是一个网页代码编辑器,可让你直接在网页浏览器中开发网站。也可以在 Linux、Windows 或 Mac 平台上在线或本地运行 KodExplorer。唯一的要求是必须有 PHP 5。

容器化部署MariaDB

编写Dockerfile文件构建mysql镜像,要求基于centos完成MariaDB数据库的安装与配置,并设置服务开机自启。编写Dockerfile构建镜像explorer-mysql:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成MariaDB数据库的安装,设置root用户的密码为root,并设置MariaDB数据库开机自启。

[root@k8s-master-node1 ~]# tar -xf Explorer.tar.gz
[root@k8s-master-node1 ~]# ls
anaconda-ks.cfg  Explorer.tar.gz  KodExplorer
[root@k8s-master-node1 ~]# cd KodExplorer/
[root@k8s-master-node1 KodExplorer]# ls
CentOS_7.9.2009.tar  data  mysql  nginx  php  redis  yum
[root@k8s-master-node1 KodExplorer]#

上传centos镜像

[root@k8s-master-node1 KodExplorer]# docker load -i CentOS_7.9.2009.tar
Loaded image: centos:centos7.9.2009

编写数据库初始化脚本

[root@k8s-master-node1 KodExplorer]# vi mysql_init.sh
[root@k8s-master-node1 KodExplorer]# cat 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;"
[root@k8s-master-node1 KodExplorer]#

编写本地yum源仓库

[root@k8s-master-node1 KodExplorer]# vi local.repo
[root@k8s-master-node1 KodExplorer]# cat local.repo
[yum]
name=yum
baseurl=file:///root/yum
gpgcheck=0
enabled=1
[root@k8s-master-node1 KodExplorer]#

编写dockerfile文件

[root@k8s-master-node1 KodExplorer]# vi Dockerfile-mariadb
[root@k8s-master-node1 KodExplorer]# cat Dockerfile-mariadb
FROM centos:centos7.9.2009
MAINTAINER Chinaskills
RUN rm -rfv /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/
RUN bash /opt/mysql_init.sh
EXPOSE 3306
CMD ["mysqld_safe","--user=root"]

构建镜像

[root@k8s-master-node1 KodExplorer]# docker build -t explorer-mysql:v1.0 -f Dockerfile-mariadb .

容器化部署Redis

编写Dockerfile文件构建redis镜像,要求基于centos完成Redis服务的安装和配置,并设置服务开机自启。编写Dockerfile构建镜像explorer-redis:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成Redis服务的安装,修改其配置文件关闭保护模式,并设置Redis服务开机自启。

[root@k8s-master-node1 KodExplorer]# vi Dockerfile-redis
[root@k8s-master-node1 KodExplorer]# cat Dockerfile-redis
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 redis
RUN sed -i 's/127.0.0.1/0.0.0.0/g' /etc/redis.conf && \
    sed -i 's/protected-mode yes/protected-mode no/g' /etc/redis.conf
EXPOSE 6379
CMD ["/usr/bin/redis-server","/etc/redis.conf"]
[root@k8s-master-node1 KodExplorer]#

构建镜像

[root@k8s-master-node1 KodExplorer]# docker build -t explorer-redis:v1.0 -f Dockerfile-redis .

容器化部署PHP

编写Dockerfile文件构建explorer镜像,要求基于centos完成PHP和HTTP环境的安装和配置,并设置服务开机自启。编写Dockerfile构建镜像explorer-server:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成HTTP和PHP服务的安装,然后将kodexplorer4.37.zip解压到/var/www/html目录下,修改HTTP服务的监听地址为本机,并设置HTTP服务开机自启。

编写dockerfile文件

[root@k8s-master-node1 KodExplorer]# vi Dockerfile-php
[root@k8s-master-node1 KodExplorer]# cat Dockerfile-php
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 install httpd php php-cli unzip php-gd php-mbstring -y
WORKDIR /var/www/html
COPY php/kodexplorer4.37.zip .
RUN unzip kodexplorer4.37.zip
RUN chmod -R 777 /var/www/html
RUN sed -i 's/#ServerName www.example.com:80/ServerName localhost:80/g' /etc/httpd/conf/httpd.conf
EXPOSE 80
CMD ["/usr/sbin/httpd","-D","FOREGROUND"]

构建镜像

[root@k8s-master-node1 KodExplorer]# docker build -t explorer-server:v1.0 -f Dockerfile-php .

容器化部署Nginx

编写Dockerfile文件构建nginx镜像,要求基于centos完成Nginx服务的安装和配置,并设置服务开机自启。编写Dockerfile构建镜像explorer-nginx:v1.0,要求使用centos7.9.2009镜像作为基础镜像,完成Nginx服务的安装,并设置Nginx服务开机自启。

[root@k8s-master-node1 KodExplorer]# vi Dockerfile-nginx
[root@k8s-master-node1 KodExplorer]# cat 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
RUN /bin/bash -c 'echo init ok'
EXPOSE 80
CMD ["nginx","-g","daemon off;"]
[root@k8s-master-node1 KodExplorer]#

构建镜像

[root@k8s-master-node1 KodExplorer]# docker build -t explorer-nginx:v1.0 -f Dockerfile-nginx .

编排部署compose服务

编写docker-compose.yaml文件,要求使用镜像mysql、redis、nginx和explorer完成Explorer管理系统的编排部署。编写docker-compose.yaml完成Explorer资源管理系统的部署,要求定义mysql、redis、nginx和explore共四个Service,分别使用镜像explorer-redis:v1.0、explorer-mysql:v1.0、explorer-nginx:v1.0、explorer-server:v1.0,并将explorer的80端口映射到宿主机的8090端口。

[root@k8s-master-node1 KodExplorer]# vi docker-compose.yaml
[root@k8s-master-node1 KodExplorer]# cat docker-compose.yaml
version: '3.2'
services:
  nginx:
    container_name: nginx
    image: explorer-nginx:v1.0
    volumes:
      - ./nginx/logs:/var/log/nginx
    ports:
      - "443:443"
    restart: always
    depends_on:
      - php-fpm
    tty: true

  mysql:
    container_name: mysql
    image: explorer-mysql:v1.0
    volumes:
      - ./data/mysql:/var/lib/mysql
      - ./mysql/logs:/var/lib/mysql-logs
    ports:
      - "3306:3306"
    restart: always

  redis:
    container_name: redis
    image: explorer-redis:v1.0
    ports:
      - "6379:6379"
    volumes:
      - ./data/redis:/data
      - ./redis/redis.conf:/usr/local/etc/redis/redis.conf
    restart: always
  php-fpm:
    container_name: php-fpm
    image: explorer-server:v1.0
    ports:
      - "8090:80"
    links:
      - mysql
    restart: always
    depends_on:
      - mysql

启动服务

[root@k8s-master-node1 KodExplorer]# docker-compose up -d
[+] Running 4/4
 ⠿ Container nginx    Started                                                                                      4.1s
 ⠿ Container redis    Started                                                                                      1.1s
 ⠿ Container mysql    Started                                                                                      1.1s
 ⠿ Container php-fpm  Started                                                                                      1.0s
[root@k8s-master-node1 KodExplorer]#

注;如果出现以下情况,将该容器停止,再删除即可

[root@k8s-master-node1 KodExplorer]# docker-compose up -d
[+] Running 0/0
 ⠋ Container nginx  Creating                                                                                       0.0s
Error response from daemon: Conflict. The container name "/nginx" is already in use by container "a77708ef82cdfac8291ca640bbec0da3cd58ff5fa82697d3e88dba854baf5998". You have to remove (or rename) that container to be able to reuse that name.
[root@k8s-master-node1 KodExplorer]# docker stop a77708ef82cdfac8291
a77708ef82cdfac8291
[root@k8s-master-node1 KodExplorer]# docker-compose up -d
[+] Running 0/0
 ⠋ Container nginx  Creating                                                                                       0.0s
Error response from daemon: Conflict. The container name "/nginx" is already in use by container "a77708ef82cdfac8291ca640bbec0da3cd58ff5fa82697d3e88dba854baf5998". You have to remove (or rename) that container to be able to reuse that name.
[root@k8s-master-node1 KodExplorer]# docker rm -f a77708ef82cdfac8291
a77708ef82cdfac8291

查看服务

[root@k8s-master-node1 KodExplorer]# docker-compose ps
NAME                COMMAND                  SERVICE             STATUS              PORTS
mysql               "mysqld_safe --user=…"   mysql               running             0.0.0.0:3306->3306/tcp, :::3306->3306/tcp
nginx               "nginx -g 'daemon of…"   nginx               running             0.0.0.0:443->443/tcp, :::443->443/tcp
php-fpm             "/usr/sbin/httpd -D …"   php-fpm             running             0.0.0.0:8090->80/tcp, :::8090->80/tcp
redis               "redis-server /usr/l…"   redis               running             0.0.0.0:6379->6379/tcp, :::6379->6379/tcp
[root@k8s-master-node1 KodExplorer]#

在浏览器上通过http://IP:8090访问KodExplorer

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

相关文章:

  • 系留无人机照明芯片迎来革新:80V耐压输入+FP7195千瓦级大功率调光IC方案落地
  • GitLab 中文版17.10正式发布,27项重点功能解读【三】
  • html方法收集
  • Java 集合操作详解与使用指南
  • UE4学习笔记 FPS游戏制作14 发射抛物线子弹
  • 多维动态规划 力扣hot100热门面试算法题 面试基础 核心思路 背题
  • 第四届能源、电力与电气国际学术会议(ICEPET 2025)
  • 后缀表达式 | 第十届蓝桥杯省赛C++B组
  • 如何使用Xshell连接Linux虚拟机
  • K8S学习之基础五十:k8s中pod时区问题并通过kibana查看日志
  • android Firebase Cloud Messaging (FCM) 接入
  • # 用 Paramiko,轻松掌控远程服务器
  • 0基础 | 制作麦克风音频放大电路
  • 使用redis设置店铺状态
  • 【ESP32-C2】基于 esptool 完成 Secure Boot V2 和 Flash 加密 Development 模式的完整指令序列
  • 遥控器钥匙学习---通过uds指令
  • How to share files with Linux mint 22 via samba in Windows
  • spring - 十二种事务失效场景
  • python虚拟环境安装opus(windows)
  • 大模型重点1 【综述-文字版】
  • 复旦建校120周年|迎来复旦大学艺术馆开馆
  • 人民日报评论员:党政机关要带头过紧日子
  • 水果预包装带来的环境成本谁来分担?
  • 持续降雨存在落石风险,贵州黄果树景区水帘洞将封闭至6月初
  • 倒票“黄牛”屡禁不绝怎么破?业内:强化文旅市场票务公开制度
  • 著名心血管病学专家李国庆教授逝世,享年63岁