Docket常见的软件部署1

news2024/11/27 7:36:50

1 安装MySQL

# 查看MySQL镜像
docker search mysql
# 拉起镜像
docker pull mysql:5.7
# 创建MySQL数据映射卷,防止数据不丢失
mkdir -p /hmoe/tem/docker/mysql/data/
# 启动镜像
docker run -d --name mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -v /home/tem/docker/mysql/data/:/var/lib/mysql 镜像名称

-e 设置mysql 的登录密码。默认账号是root, -v是将容器中的数据映射本地,防止删除容器数据丢失, -p 外部3306端口映射到容器3306端口

mysl容器启动成功

mysql登录成功

2 mysql 主从读写分离

"""利用python脚本在docker上启动2个MySQL"""
import os
​
folderList = ['master', 'slave1']
localPath = os.path.dirname(os.path.abspath(__file__))
​
​
def create_config():
    for index, folder in enumerate(folderList):
        folder_path = os.path.join(localPath, folder)
        if not os.path.exists(folder_path):
            os.makedirs(folder_path)
        config_path = os.path.join(folder_path, 'conf')
        if not os.path.exists(config_path):
            os.makedirs(config_path)
        data_path = os.path.join(folder_path, 'data')
        if not os.path.exists(data_path):
            os.makedirs(data_path)
        config_data = """[mysqld]
pid-file=/var/run/mysqld/mysqld.pid
socket=/var/run/mysqld/mysqld.sock
datadir=/var/lib/mysql
log-error=/var/log/mysql/error.log
server-id={}
log-bin=/var/log/mysql/mysql-bin.log
expire_logs_days=30
max_binlog_size=256M
symbolic-links=0
# slow_query_log=ON
# slow_query_log_file=/var/log/mysql/slow.log
# long_query_time=1""".format(index+1)
        config_file = os.path.join(config_path, 'mysqld.cnf')
        with open(config_file, 'w') as f:
            f.write(config_data)
​
​
def run_mysql():
    for index, name in enumerate(folderList):
        cmd = "docker run -d -p {0}:3306 --name=mysql_{1} " \
              "-v {2}/{1}/conf:/etc/mysql/mysql.conf.d " \
              "-v {2}/{1}/data:/var/lib/mysql " \
              "-e MYSQL_ROOT_PASSWORD=123456 mysql:5.6".format(4306+index, name, localPath)
        os.system(cmd)
        # print(cmd)
​
​
if __name__ == '__main__':
    create_config()
    run_mysql()
# 先拉起mysql的镜像
docker pull mysql:5.7
# 在将上面的脚本复制到test.py的文件中, 执行脚本
python3 test.py

#master, 进入容器中
docker exec -ti mysql_master bash
mysql -u root -p
grant replication slave on *.* to 'slave'@'%' identified by 'iamslave';
flush privileges;
show master status; #显示master上面的状态
​
#slave1
docker exec -ti mysql_slave1 bash
mysql -u root -p
reset slave;
change master to master_host='192.168.1.13', master_port=4306, master_user='slave', master_password='iamslave', master_log_file='mysql-bin.000003', master_log_pos=590;
start slave; 
# master_host 为master的IP, master_port为master的端口,master_user为通信用户名,master_password为密码,master_log_file为master的bin日志,master_log_pos为master的log_pos
show slave status \G #查看状态如果Slave_IO_Running: Yes Slave_SQL_Running: Yes 则表示开启成功

3 安装ES+kibana

# 安装ES
# 创建网络ES和kibana通信
docker network create es-net
mkdir -p /home/wuzhibin/docker/es/data
mkdir -p /home/wuzhibin/docker/es/plugins
# 启动容器
docker run -d --name es -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" -e "discovery.type=single-node" -v /home/wuzhibin/docker/es/data:/usr/share/elasticsearch/data -v /home/wuzhibin/docker/es/plugins:/usr/share/elasticsearch/plugins --privileged --network es-net -p 9200:9200 -p 9300:9300 elasticsearch:7.12.1
#  如果启动报错,日志是映射没有权限的化, 在重新启动
chmod 777 -R /home/wuzhibin/docker/es
  1. docker run -d: 这部分表示在后台运行容器。

  2. --name es: 为容器指定一个名字,这里是 “es”。

  3. -e "ES_JAVA_OPTS=-Xms512m -Xmx512m": 设置 Java 虚拟机的参数,包括初始堆内存大小 (-Xms) 和最大堆内存大小 (-Xmx),这里都设置为 512MB。

  4. -e "discovery.type=single-node": 设置 Elasticsearch 的节点发现机制为单节点,因为在这个配置中只有一个 Elasticsearch 实例。

  5. -v es-data:/usr/share/elasticsearch/data: 将容器内 Elasticsearch 的数据目录挂载到宿主机的名为 “es-data” 的卷上,以便数据持久化。

  6. -v es-plugins:/usr/share/elasticsearch/plugins: 类似上面,将容器内 Elasticsearch 的插件目录挂载到宿主机的名为 “es-plugins” 的卷上。

  7. --privileged: 赋予容器一些特权,可能会有一些安全风险,需要慎用。

  8. --network es-net: 将容器连接到名为 “es-net” 的网络上,目的是为了与其他容器进行通信。

  9. -p 9200:9200 -p 9300:9300: 将容器内部的端口映射到宿主机上,这里分别是 Elasticsearch 的 HTTP REST API 端口(9200)和节点间通信的端口(9300)。

  10. elasticsearch:7.12.1: 指定要运行的 Docker 镜像的名称和版本号,这里是 Elasticsearch 7.12.1 版本。

访问IP:9200 验证是否启动成功

# 安装可视化工具kibana
# ELASTICSEARCH_HOSTS为上一个ES容器的ip
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.1.113:9200 --network=es-net -p 5601:5601  kibana:7.12.1
访问kibana地址ip:5601

4 安装jekins

#拉取jenkins镜像
docker pull jenkins/jenkins
# 查看镜像
docker images
# 创建保存容器数据的文件夹
mkdir -p /home/wuzhibin/docker/jenkin/data
#启动容器
docker run -u root -d -p 8000:8080  --name=jenkins -v /home/wuzhibin/docker/jenkins/data:/var/jenkins_home   jenkins/jenkins
# 查看容器状态
docker ps 
# 网页打开
ip:8000 
# 进入容器,获取第一次登录密码

ip:8000访问jenkins的网址,第一次需要获取管理员的密钥

# 进入容器
docker exec -ti jenkins  bash
# 获取管理员的密钥
cat /var/jenkins_home/secrets/initialAdminPassword
​
# jenkin设置中可以更换插件地址,下载插件更快
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json  # 更快
http://mirror.esuni.jp/jenkins/updates/update-center.json

5 安装rabbitmq

# 下载镜像
docker pull rabbitmq:management  
# 启动容器-e 设置账号为admin, 密码为admin, 这个镜像会直接安装rabbitmq+管理工具
docker run -di --hostname 0.0.0.0 --name myrabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 61613:61613 -p 1883:1883 rabbitmq:management 

ip:15672 进入管理页面,账号密码为上面设置的账户和密码

6 安装redis

# 下载镜像
docker pull redis   
# 启动redis 容器 appendonly yes 表示开启持久化
docker run --name my-redis -d  -p 6379:6379  -v /home/wuzhibin/docker/redis/data:/data  redis  redis-server /etc/redis/redis.conf --appendonly yes  

7 安装管理docker工具

# 拉起镜像
docker pull portainer/portainer
# 启动容器 privileged=True 设置特权模式,--restart=always 重启docker总是自启容器
docker  run --name=portainer -d -p 8088:9000 --restart=always -v /var/run/docker.sock:/var/run/docker.sock --privileged=True portainer/portainer

IP:8088 进入设置密码之后,选择连接本地的docker环境

进入之后可以看到运行的容器。这个工具可以很方便的管理docker不需要不需要记那么多docker命令,直接上去点点点。

8 docker 安装gitlab

GitHub是一个最大的同性交友网站,但是受限于需要梯子才能流畅访问(国内访问很慢),所以能否自己搭建一个私人的代码托管平台呢。

GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。因此选择Git Lab来搭代码托管的私仓。

1. 启动镜像

# 拉起汉化版本的gitlab
docker pull twang2218/gitlab-ce-zh
# 启动镜像
docker run -d -p 8443:443 -p 8090:80 -p 8022:22 --restart always --name gitlab -v /home/wuzhibin/docker/gitlab/etc:/etc/gitlab -v /home/wuzhibin/docker/gitlab/log:/var/log/gitlab -v /home/wuzhibin/docker/gitlab/data:/var/opt/gitlab --privileged=true twang2218/gitlab-ce-zh
​
​
-d                #后台运行,全称:detach
-p 8443:443      #将容器内部端口向外映射
-p 8090:80       #将容器内80端口映射至宿主机8090端口,这是访问gitlab的端口
-p 8022:22       #将容器内22端口映射至宿主机8022端口,这是访问ssh的端口
--restart always #容器自启动
--name gitlab    #设置容器名称为gitlab
-v               # 数据卷映射, 将容器中的日志数据和配置保到本地,数据持久化防止容器删除数据丢失
--privileged=true         # 获取所有的权限
# 查看容器是否正常启动成功
docker ps 

2. 修改配置文件

# 进入容器
docker exec -it gitlab bash
# 修改gitlab.rb文件的配置
vim /etc/gitlab/gitlab.rb

# 修改gitlab.yml的配置
vim /opt/gitlab/embedded/service/gitlab-rails/config/gitlab.yml
 

3. 重启gitlab服务

# 容器内重启
gitlab-ctl restart
# 退出容器
exit

3. GitLab是否能正常使用

IP:8089访问gitlab网站, 默认的账号为root,第一次进入需要修改密码, 进入可以正常使用

上一章:Docker中常见的命令行-CSDN博客

下一章:Docker常见软件部署2-CSDN博客

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

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

相关文章

7_springboot_shiro_jwt_多端认证鉴权_自定义AuthenticationToken

1. 目标 ​ 本小节会先对Shiro的核心流程进行一次回顾,并进行梳理。然后会介绍如果应用是以API接口的方式提供给它方进行调用,那么在这种情况下如何使用Shiro框架来完成接口调用的认证和授权。 2. 核心架构 引用官方的架构图: 2.1 Subje…

蓝桥杯第十五届抱佛脚(八)并查集

蓝桥杯第十五届抱佛脚(八)并查集 基本概念 并查集是一种数据结构,用于管理一系列不交集的元素集合,并支持两种操作: 查找(Find): 查找操作用于确定某个元素属于哪个集合&#xf…

Topaz Photo AI for Mac v2.4.2 智能AI降噪软件

Topaz Photo AI是一款适用于Mac的图像处理软件,使用人工智能技术对照片进行编辑和优化。该软件提供了多种强大的功能,包括降噪、锐化、消除噪点、提高分辨率等,可以帮助用户改善图像质量,并实现自定义的效果。 软件下载&#xff1…

前端-html-02

1.列表 标签名功能和语义属性单标签还是双标签ul无序列表包裹元素双标签 ol 有序列表包裹元素双标签li列表项双标签dl定义列表包裹元素双标签dt定义列表项标题双标签dd定义列表项描述双标签 li必须由Ul或者ol包裹 <!DOCTYPE html> <html><head><…

Web APIs知识点讲解(阶段七)

正则表达式 1.能够利用正则表达式校验输入信息的合法性2. 具备利用正则表达式验证小兔鲜注册页面表单的能力 一.正则表达式 1.正则表达式 正则表达式&#xff08;Regular Expression&#xff09;是用于匹配字符串中字符组合的模式。在 JavaScript中&#xff0c;正则表达式也…

我们正在被 DDoS 攻击,但是我们啥也不干,随便攻击...

最近&#xff0c;一场激烈的攻防大战在网络世界悄然上演。 主角不是什么国家安全局或者黑客组织&#xff0c;而是一家名不见经传的创业公司——TablePlus。 DDoS 攻击者们摩拳擦掌&#xff0c;跃跃欲试。他们从四面八方蜂拥而至&#xff0c;誓要用数亿次请求把 TablePlus 的服…

Redis 常见数据结构及命令

目录 一.Redis常见的数据结构 二.Redis数据结构对应的命令 1.String类型 2.Hash类型 3.List类型 4.Set类型 5.Sorted Set类型 一.Redis常见的数据结构 Redis支持多种数据结构&#xff0c;包括字符串&#xff08;string&#xff09;、哈希&#xff08;hash&#xff09;、…

STM32的芯片无法在线调试的情况分析

问题描述 本博客的目的在于帮助网友尽快地解决问题&#xff0c; 避免浪费时间&#xff0c; 查漏补缺。 在stm32的开发过程中&#xff0c;有时会遇到"STM No Target connected"的错误提示&#xff0c;这说明MDK开发环境无法与目标设备进行通信&#xff0c;导致无法烧…

【JavaSE】类和对象详解(上)

欢迎关注个人主页&#xff1a;逸狼 创造不易&#xff0c;可以点点赞吗~ 如有错误&#xff0c;欢迎指出~ 目录 类和对象 类的组成 对类的理解 成员变量的访问和类方法的调用 this 抛出一个问题 this的作用 初始化成员变量 未初始化的成员变量 代码举例 就地初始化 构…

Autodesk Maya 2025 mac玛雅三维动画特效软件

Autodesk Maya 2025 for Mac是一款功能强大、操作简便的三维动画软件&#xff0c;适用于电影、电视、游戏、建筑、工业设计、虚拟现实和动画等领域。无论是专业设计师还是初学者&#xff0c;都可以通过Maya 2025实现自己的创意和想法&#xff0c;创作出高质量的三维作品。 软件…

浅谈Spring体系的理解

浅谈Spring知识体系 Spring Framework架构图Spring家族技术生态全景图XMind汇总 本文不涉及细节&#xff0c;主要回答两个问题&#xff1a; Spring家族技术生态全景图有哪些Spring Framework架构下每个模块有哪些东西&#xff0c;以及部分模块之间的关联关系 Spring Framework架…

探究贪心算法:特点与实际应用

探究贪心算法&#xff1a;特点与实际应用 探究贪心算法&#xff1a;特点与实际应用&#x1f4dd; 摘要&#x1f680; 引言&#x1f4cb; 正文内容&#xff08;详细介绍&#xff09;&#x1f4cc; 小结&#x1f4ca; 表格总结&#x1f3af; 总结&#x1f52e; 未来展望&#x1f…

【Redis教程0x08】详解Redis过期删除策略内存淘汰策略

引言 Redis的过期删除策略和内存淘汰策略是经常被问道的问题&#xff0c;这两个机制都是做删除操作&#xff0c;但是触发的条件和使用的策略是不同的。今天就来深入理解一下这两个策略。 过期删除策略 Redis 是可以对 key 设置过期时间的&#xff0c;因此需要有相应的机制将…

智能文档合规检测系统:在央企国企招标采购领域的应用

一、背景介绍 在央企国企采购过程中&#xff0c;合规性是一个不可忽视的重要方面。采购方需要确保供应商的资质、业绩、规模等条件符合采购要求&#xff0c;同时避免设置不合理的条件限制或排斥潜在供应商。为了提高采购效率和确保合规性&#xff0c;智能文档合规检测系统应运…

40.网络游戏逆向分析与漏洞攻防-角色管理功能通信分析-角色删除功能的数据包失败的分析

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 如果看不懂、不知道现在做的什么&#xff0c;那就跟着做完看效果 内容参考于&#xff1a; 易道云信息技术研究院VIP课 上一个内容&#xff1a;39.角色数据的维…

Linux|centos7-postgresql数据库|yum安装数据库和配置repmgr高可用集群以及repmgr的日常管理工作

一、 前言 postgresql 的yum部署其实还是有点东西的&#xff0c;本文就做一个小小的记录&#xff0c;高可用方面repmgr插件还是非常不错的&#xff0c;但如何部署以及部署后如何使用也是一个难点&#xff0c;因此&#xff0c;也在本文里做一个记录 环境介绍&#xff1a; 第…

TonyBai go语言第一课 学习笔记

文章目录 大纲前置篇显式 大纲 前置篇 显式 package main import "fmt" func main() { var a int16 5 var b int 8 var c int64 c a b fmt.Printf("%d\n", c) }如果我们编译这段程序&#xff0c;将得到类似这样的编译器错误&#xff1a;“invalid op…

jmeter性能压测的标准和实战中会遇到的问题

1.性能标准建议 CPU 使用率&#xff1a;不超过 70% 内存使用率&#xff1a;不超过 70% 磁盘&#xff1a;%util到达80%严重繁忙 &#xff08;os.disIO.filesystem.writeKbPS 每秒写入的千字节&#xff09; 响应时间&#xff1a;95%的响应时间不超过8000ms 事务成功率&#xff1a…

计算线上点坐标

综上代码 void point_on_line(float* res, float* p, float* q, float lambda) {float tmp 1 - lambda;res[0] tmp* p[0] lambda * q[0];res[1] tmp* p[1] lambda * q[1];res[2] tmp* p[2] lambda * q[2]; }

基于SpringBoot华强北二手手机商城系统

点赞收藏关注 → 私信领取本源代码、数据库 一、项目概述 项目名称&#xff1a;基于SpringBoot华强北二手手机商城 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 主要技术&#xff1a;SpringBootMybatisMySQL 运行环境&#xff1a;Windows7以上、JDK1.8、M…