docker 禅道 远程链接 MySQL

news2024/12/29 8:44:55

主要的坑在下边 红色字体:认真看

第一种方法

搜索镜像

docker search zentao

拉取镜像

docker pull easysoft/zentao:latest

启动容器

–name [容器名] 设置容器名称

-p [主机端口]:80 绑定端口

-v /home/zentao/zentaopms:/www/zentaopms 挂载数据目录

/home/zentao/mysql:/var/lib/mysql 挂载数据库目录

-e MYSQL_ROOT_PASSWORD=[数据库密码] 设置数据库密码

docker run --name [容器名] -p [主机端口]:80 -v /home/zentao/zentaopms:/www/zentaopms -v /home/zentao/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[数据库密码] -d easysoft/zentao:latest

第二种方法

1docker -v

2.1 在线下载镜

12拉取禅道开源版12.3.3版本命令如下:docker pull easysoft/zentao:12.3.3

123[root@CN-HZ-Zentao ~]# docker image lsREPOSITORY TAG IMAGE ID CREATED SIZEeasysoft/zentao 12.3.3 6b51979725b5 10 months ago 633MB

3. 启动禅道容器

3.1 启动命令

# 官方给的命令:
docker run --name [容器名] -p [主机端口]:80 --network=[网络驱动名] --ip [容器IP] --mac-address [mac地址] -v [主机禅道目录]:/www/zentaopms -v [主机mysql目录]:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=[数据库密码] -d easysoft/zentao:[镜像标签]

## 启动参数说明:
# 容器名:启动的容器名字,可随意指定;
# 主机端口:主机端口为web访问端口;
# 网络驱动名:刚刚创建的网络驱动名;
# 容器IP:在网络驱动范围内选择一个作为该容器的固定ip;
# mac地址:指定固定的mac地址,建议范围为02:42:ac:11:00:00 到 02:42:ac:11:ff:ff;
# 主机禅道目录:必须指定,方便禅道代码、附件等数据的持久化,非升级情况需指定空目录;
# 主机mysql目录:必须指定,方便禅道数据持久化,非升级情况需指定空目录;
# 数据库密码: 容器内置mysql用户名为root,默认密码123456,如果不修改可以不指定该变量,如果想更改密码可以设置 MYSQL_ROOT_PASSWORD变量来更改密码;
# 镜像标签:禅道版本。

# 实际上我们只需要按如下命令启动容器即可:
docker run --name zentao-server --restart always -d -p 80:80 -v /ichint/zentaopms:/www/zentaopms -v /ichint/mysqldata:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 easysoft/zentao:12.3.3

## 其中 --restart always 意思是在docker容器异常时自动重启。

3.2 查看是否启动成功

123[root@CN-HZ-Zentao ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES8c24dfafdbef easysoft/zentao:12.3.3 "/.docker_init.sh" 6 weeks ago Up 6 weeks 0.0.0.0:80->80/tcp, :::80->80/tcp zentao-server
  1. 4. 安装禅道

然后点击【登录禅道管理系统】,输入帐号密码,就可以登录我们的禅道了。

  1. 5. 存在的问题及解决

问题1:容器内部的时间和宿主机时间不一致

问题2:如果想在外部连接禅道数据库是没办法的

这就需要我们对镜像进行定制和修改。

针对问题1,我们只需要在启动禅道容器的时候,加上参数: -v /etc/localtime:/etc/localtime:ro,即:

1docker run --name zentao-server --restart always -d -p 80:80 -v /ichint/zentaopms:/www/zentaopms -v /ichint/mysqldata:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 easysoft/zentao:12.3.3

针对问题2,我们需要按如下步骤进行操作:

主要思路是:

  1. 进入容器

  2. 修改MySQL默认配置

  3. 授权登录

  4. 提交修改生成新的镜像

  5. 删除之前启动的容器

  6. 用新的镜像重新启动容器

操作过程中,数据不会丢失,这点不需要担心,因为我们将数据目录都映射到宿主机中了

## 开启docker部署的禅道数据库外部登录
# 进入容器
docker exec -ti zentao-server bash

找到MariaDB的配置文件"/etc/mysql/mariadb.conf.d/50-server.cnf",把"bind-address...."一行注释掉
接下来还要给账户分配权限,进入mysql命令行界面,输入:
mysql -uroot -p
输入密码:

## 在容器内的MySQL中执行如下命令:
select User, host from mysql.user;
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;

# 输入exit,退出MySQL,再次输入exit退出容器,然后将刚才对容器的修改进行提交,生成我们自己定义的镜像
docker commit 8c24dfafdbef myzentao:v2           #8c24dfafdbef 这个号码是 进入容器的号码,

# 然后关闭并删除旧的容器
docker stop zentao-server
docker rm zentao-server
# 或者:docker rm -f zentao-server

# 最后用我们自定义的镜像重新启动一个新的容器,并将数据库端口也映射出来
docker run --name zentao-server --restart always -d -p 80:80 -p 3306:3306 -v /ichint/zentaopms:/www/zentaopms -v /ichint/mysqldata:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro -e MYSQL_ROOT_PASSWORD=123456 -d myzentao:v2
这样我们就可以在外部登录禅道的数据库了。

 

以下是 进入容器的号码

坑在这里,需要再修改一次:

用新的镜像启动容器后,进入数据库配置文件,再次修改,

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

FLUSH PRIVILEGES;

执行上面的命令。

这样我们就可以在外部登录禅道的数据库了。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/784046.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

idea中Easy Code模版配置

首先找到模版位置 找到使用的模版,我用的是MybatisPlus-H,这是我新建的一个模版 controller.java.vm模版 ##导入宏定义 $!{define.vm}##设置表后缀(宏定义) #setTableSuffix("Controller")##保存文件(宏定义&#xff…

PHP8知识详解:PHP8开发工具VS Code的安装

作为PHP8的开发工具有很多,具有IDE功能的有phpstorm、Visual Studio Code、Sublime Text、NetBeans、Eclipse、Codelobster、PHP Designer等,当然还有很多轻量的工具,比如Notepad、Editplus等。本文给你介绍的是万能编辑器Visual Studio Code…

Python基于PyTorch实现循环神经网络回归模型(LSTM回归算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 LSTM网络是目前更加通用的循环神经网络结构,全称为Long Short-Term Memory,翻…

计算机视觉(二)图像特征提取

文章目录 颜色特征量化颜色直方图适用颜色空间:RGB、HSV等颜色空间操作 几何特征边缘 Edge边缘定义边缘提取 基于关键点的特征描述子引入几何特征:关键点几何特征:Harris角点FAST角点检测几何特征:斑点局部特征:SIFT预…

GPT-4 模型详细教程

GPT-4(Generative Pretrained Transformer 4)是 OpenAI 的最新语言生成模型,其在各类文本生成任务中表现优秀,深受开发者和研究者喜爱。这篇教程将帮助你理解 GPT-4 的基本概念,并向你展示如何使用它来生成文本。 什么…

前端vue入门(纯代码)35_导航守卫

星光不问赶路人,时光不负有心人 【33.Vue Router--导航守卫】 导航守卫 正如其名,vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航。有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的。 记住参数或查…

uniapp JS文件里面调用自定义组件(不用每个页面在template中加组件标签)

前言 工具:uniapp 开发端:微信小程序 其他:uview 2.0 场景:路由器里面,统一验证是否已登录,如果没登录,则直接弹出登录弹窗出来,不管哪个页面都如此。 效果如下: 直接上…

【笔试强训选择题】Day29.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!!&#xff…

rsync—远程同步

目录 一:rsync概述 1.1rsync简介 1.2rsync同步方式 二:rsync特性 三:rsync同步源 四:rsync与cp、scp对比 五:常用rsync命令 六:rsync本地复制实例 七:配置源的俩种表示方法 八&#x…

[NLP]Huggingface模型/数据文件下载方法

问题描述 作为一名自然语言处理算法人员,hugging face开源的transformers包在日常的使用十分频繁。在使用过程中,每次使用新模型的时候都需要进行下载。如果训练用的服务器有网,那么可以通过调用from_pretrained方法直接下载模型。但是就本人…

安全DNS,状态码,编码笔记整理

一 DNS DNS(Domain Name System)是互联网中用于将域名转换为IP地址的系统。 DNS的主要功能包括以下几个方面: 域名解析:DNS最主要的功能是将用户输入的域名解析为对应的IP地址。当用户在浏览器中输入一个域名时,操作…

工程安全监测无线振弦采集仪在建筑物中的应用

工程安全监测无线振弦采集仪在建筑物中的应用 工程安全监测无线振弦采集仪是一种用于建筑物结构安全监测的设备,它采用了无线传输技术,具有实时性强、数据精度高等优点,被广泛应用于建筑物结构的实时监测和预警。下面将从设备的特点、应用场…

力扣热门100题之接雨水【困难】

题目描述 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。 示例 1: 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,0,2,1,0,1,3…

如何使用GPT作为SQL查询引擎的自然语言

​生成的AI输出并不总是可靠的,但是下面我会讲述如何改进你的代码和查询的方法,以及防止发送敏感数据的方法。与大多数生成式AI一样,OpenAI的API的结果仍然不完美,这意味着我们不能完全信任它们。幸运的是,现在我们可以…

Packet Tracer – 配置动态 NAT

Packet Tracer – 配置动态 NAT 拓扑图 目标 第 1 部分:配置动态 NAT 第 2 部分:验证 NAT 实施 第 1 部分: 配置动态 NAT 步骤 1: 配置允许的流量。 在 R2 上,为 ACL 1 配置一个语句以允许属于 172.16.0.…

【JVM】浅看JVM的运行流程和垃圾回收

1.JVM是什么 JVM( Java Virtual Machine)就是Java虚拟机。 Java的程序都运行在JVM中。 2.JVM的运行流程 JVM的执行流程: 程序在执行之前先要把java代码转换成字节码(class文件),JVM 首先需要把字节码通过…

Visio/PPT/Matlab输出300dpi以上图片【满足标准投稿要求】

1. visio 遵照如下输出选项,另存为tif格式文件时,选择正确输出便是300dpi以上 2. matlab 文件选项选中导出设置,在渲染中选择dpi为600,导出图片即可,科研建议选择tif格式文件 3.ppt 打开注册表,winr键…

【报错】在python3.9环境下安装sqlmap报错

问题描述 报错内容: missing one or more core extensions (‘ssl’, ‘sqlite3’) most likely because current version of Python has been built without appropriate dev packages 原因分析: 缺少一个或多个核心扩展(‘ssl’、‘sqlit…

常见的栈溢出StackOverFlow 与 内存溢出OutOfMemory的区别

0、前言:内存模型 对于多线程运行情况下的jvm内存,我们应当知道: 每创建一个线程,jvm就会为其分配一块线程私有的工作内存,其中包括程序计数器、栈,等等。 对于每一个线程私有的栈,当线…