Docket常见的软件部署1

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.7".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博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(原型与原型链)前端八股文修炼Day5

一 原型链的理解 原型链定义: 原型链是 JavaScript 中实现对象继承的关键机制之一,它是一种对象之间的关系,通过这种关系,一个对象可以继承另一个对象的属性和方法。 原型链的组成: 每个对象都有一个指向另一个对象的…

抖音短视频矩阵系统源代码开发部署/SaaS贴牌/源码开源

抖音短视频矩阵系统的源代码开发部署可以分为以下几个步骤: 确定需求:首先,你需要确定你想要开发的具体功能和特性,比如用户注册、上传短视频、评论等。 开发源代码:根据需求,你可以选择使用合适的编程语言…

【安全用电管理系统的应用如何保证用电安全】Acrel-6000安科瑞智慧安全用电解决方案

政策背景 国家部委 ※2017年5月3日国务院安委会召开电气火灾综合治理工作视频会议,决定在全国范围内组织开展为期3年的电气火灾综合治理工作。 公安部领导 ※公安部副部长李伟强调:向科技要战斗力,加快推进“智慧消防”建设不断提升火灾防控…

通过组策略,统一发布桌面壁纸,并禁止用户更改

在Windows域环境中,可以通过组策略(Group Policy)来实现统一发布桌面壁纸并且禁止用户更改。以下是操作步骤: 打开“组策略管理”(Group Policy Management Console, GPMC)。 在GPMC中,选择你想…

操作系统:经典进程同步问题的高级探讨

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

存储卡数据如何恢复?6 个免费的 SD 卡恢复软件

SD 卡包含数字世界中的照片、电影、文档等。擦除、格式化或SD卡损坏都可能导致数据丢失,这一点值得警惕。这就是免费 SD 卡恢复软件有用的原因。使用该软件的三个主要原因: 经济高效:免费的 SD 卡恢复软件可帮助恢复丢失的数据,而…

2024年springboot+vue毕业设计选题推荐

2024年,随着技术的发展和市场需求的变化,基于Spring Boot和Vue的毕业设计选题可以更加注重新兴技术的融合和解决实际问题。以下是一些建议的选题方向: 1. 基于Spring Boot和Vue的智能健康管理系统 - 设计并实现一个集成了运动数据、睡眠监…

本地qwen 大模型,基于FastAPI构建API接口使用

文章目录 简介实战API 构建访问curlrequest库 结果参考资料 简介 实战 使用modelscope 下载千问7B模型,利用FastAPI部署成在线的API接口; 使用history历史对话多轮问答数据,实现多轮对话; API 构建 import uvicorn from fasta…

【C语言】Infiniband驱动pci_pcie_cap

一、注释 //include\linux\compat-2.6.h #define LINUX_BACKPORT(__sym) backport_ ##__sym//include\linux\compat-2.6.33.h #define pci_pcie_cap LINUX_BACKPORT(pci_pcie_cap)/*** pci_pcie_cap - 获取保存的PCIe能力偏移* dev: PCI 设备** PCIe能力偏移在PCI设备初始化时…

vue3+Vite+TS项目,配置ESlint和Prettier

创建vue3项目 实操过的有两种方式 1.vue脚手架2.vite(推荐,也是尤大大团队研发) 具体怎么新建一个vue3项目就不多讲了,可以按照官方文档来 创建后的文件目录长这样 多提一句,vite也会随着时间不断迭代,后…

方格分割(蓝桥杯)

文章目录 方格分割题目描述答案:509思路dfs 方格分割 题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 6x6的方格,沿着格子的边线剪开成两部分。 要求这两部分的形状完全相同。 如下就是三…

蓝桥杯基础练习汇总详细解析(三)——字母图形、01字符串、闰年判断(详细解题思路、代码实现、Python)

试题 基础练习 字母图形 提交此题 评测记录 资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 利用字母可以组成一些美丽的图形,下面给出了一个例子&#…

汇编语言学习记录 01

目录 VScode配置调试环境 Debug的主要命令 简单写个Hello World VScode配置调试环境 没有IDE真的蛮难受的 安装插件TASM/MASM 右键扩展设置,选择Assembler:MASM 右键调试即可开始 Debug的主要命令 R-查看和修改寄存器 D-查看内存单元 E-修改内…

SAP系统如何使用中间数据库与其它系统进行数据交互

SAP系统与外部系统之间进行数据交换和通信的接口方式有很多种,比如常用的接口技术有RFC、BAPI、ALE、Webservice、RESTful、中间数据库等等,不同的接口形式具有不同的特点和适用场景,可以根据具体需求选择合适的接口形式来实现系统间的数据交互。 前面文章中已介绍Webservi…

2024年腾讯云4核8G服务器多少钱一年?买1年送3个月

2024年腾讯云4核8G服务器租用优惠价格:轻量应用服务器4核8G12M带宽646元15个月,CVM云服务器S5实例优惠价格1437.24元买一年送3个月,腾讯云4核8G服务器活动页面 txybk.com/go/txy 活动链接打开如下图: 腾讯云4核8G服务器优惠价格 轻…

SOC子模块--Timer

作用 Timer 是片内集成的通用定时器,能够向系统提供定时中断,也可以通过外部时钟进行定时计数; 工作模式 重启计数模式: 当通道使能后计数器锁存加载计数寄存器的值,然后在系统时钟的驱动下递减计数。当计数到零时…

信息系统项目管理师——第9章项目范围管理(重要)

本章属于10大管理知识领域,选择、案例、论文都会考。选择题考大概3分,案例题考的比较多,需要重点记录,论文也考的比较多,建议作为第二梯队准备。 1.管理基础 1.1 产品范围和项目范围 产品范围:指某项产品、服务或成…

Yarn资源调度器

目录 写在前面一、yarn资源调度器1.1 Yarn基础架构1.2 Yarn工作机制1.3 作业提交全过程1.3.1 作业提交1.3.2 作业初始化1.3.3 任务分配1.3.4 任务运行1.3.5 进度和状态更新1.3.6 作业完成 1.4 Yarn调度器和调度算法1.4.1 先进先出调度器(FIFO)1.4.2 容量…

如何使用VS统计自己的代码量?

历经漫漫编程之路,此刻我们不妨回首细数,那已累积的无数行代码,它们如同一串串无声的脚印,记载着我们默默耕耘的点滴时光。每一行代码都是平凡努力的印记,见证了我们的执着与付出,也塑造了今天的我们。让这…

Pandas数据清洗

数据清洗是对一些没有用的数据进行处理的过程。很多数据集存在数据缺失、数据格式错误、数据错误或数据重复的情况,如果要使数据分析更加准确,就需要对这些没有用的数据进行处理。 这里使用的测试数据是clean-data.csv,如图3-10所示。这个表…