centos配置docker环境

CentOS系统更换软件安装源

yum默认链接的还是国外的镜像,速度相对不理想,配置成国内的镜像会快很多,这里以阿里镜像为例进行配置:
首先进行更新:

yum update

base源
第一步:备份你的原镜像文件,以免出错后可以恢复。

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

第二步:下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

epel源
Epel 7

wget -O /etc/yum.repos.d/epel-7.repo http://mirrors.aliyun.com/repo/epel-7.repo

第三步:运行yum makecache生成缓存

yum clean all
yum makecache

安装 Docker 依赖

yum install -y yum-utils device-mapper-persistent-data lvm2

依赖下载源

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装 docker

yum makecache fast && yum -y install docker-ce
  • 运行docker的操作系统

  • 有大家常用的 Microsoft Windows 系列操作系统、Linux 发行版和 macOS 系统。Windows 和 macOS 上面运行的 Docker都是通过 Linux 虚拟机的方式运行。

  • 下载 Docker 镜像的时候,默认会访问 Docker 网站,而 Docker 网站是在国外部署的,距离比较远下载速度特别慢。可以通过设置加速器的方式来加速 Docker 镜像的下载。

  • 启动:systemctl start docker

  • 重启:systemctl restart docker

  • 开机自启动:systemctl restart docker

  • 运行状态:systemctl status docker

  • 配置 registry-mirrors:
    vim /etc/docker/daemon.json
    {
    “registry-mirrors”: [“https://mqxz7mjm.mirror.aliyuncs.com”],
    }
    {
    “registry-mirrors”: [“https://registry.docker-cn.com”]
    }
    systemctl daemon-reload
    systemctl restart docker

  • docker info
    Server Version: 19.03.12 #docker服务器版本
    Kernel Version: 3.10.0-1127.el7.x86_64 #linux内核版本
    Operating System: CentOS Linux 7 (Core) #linux操作系统
    OSType: linux #操作系统类型
    Docker Root Dir: /var/lib/docker #docker根目录
    Registry: https://index.docker.io/v1/ #镜像仓库
    Live Restore Enabled: false

-v ${HOME} 用户的主目录

docker配置数据库

MySQL 是最流行的开源关系型数据库。凭借其可靠性、易用性和性能,MySQL 已成为 Web 应用程序的数据库优先选择。

–character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

  • 配置8.0.26版本
mkdir -p /root/docker/mysql8_home
chmod 777 /root/docker/mysql8_home
docker run -d -p 3306:3306 --name mysql2 --privileged=true -v /root/docker/mysql8_home/mysql:/var/lib/mysql -v /root/docker/mysql8_home/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.26 --lower-case-table-names=1
docker run -d -p 3306:3306 --name mysql2 --privileged=true -v /root/docker/mysql8_home/mysql:/var/lib/mysql -v /root/docker/mysql8_home/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7 --lower-case-table-names=1
  • 配置5.7版本
mkdir -p /root/docker/mysql_home
chmod 777 /root/docker/mysql_home
docker run -d -p 3307:3306 --name mysql1 --privileged=true -v /root/docker/mysql_home/mysql:/var/lib/mysql -v /root/docker/mysql_home/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
docker run -d -p 3307:3306 --name mysql1 --privileged=true -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

MySQL默认的数据存储目录 /var/lib/mysql
MySQL(5.7.19)的默认配置文件是 /etc/mysql/my.cnf 文件 建议向 /etc/mysql/conf.d 目录中创建 .cnf 文件

  • –privileged=true container内的root拥有真正的root权限

  • 查看数据库

show  variables like 'lower_case_table_names';
  • 连接数据库
docker exec -it mysql1 bash
docker exec -it mysql2 bash
mysql -u root -p  连接Mysql
123456
  • 使用数据库
use mysql;
  • 添加用户
alter user 'root'@'%' identified by '123456'; 增加新用户
alter user 'root'@'%' identified with mysql_native_password by '123456'; 增加新用户
  • 授权
grant all privileges on *.* to root@"%" identified by '123456' with grant option;
grant all privileges on *.* to 'root'@'%';
  • 刷新权限
flush privileges;
  • 数据库常用命令
create database my_data; 创建数据库
show databases; 查看所有数据库
drop database my_data; 删除数据库
use my_data; 连接数据库
select version(); 显示MYSQL的版本
select now(); 显示当前时间
创建数据表
create table MyClass(id int(4) not null primary key auto_increment,name char(20) not null,sex int(4) not null default '0',degree double(16,2));
show full columns from MyClass; 查询一张表的所有字段信息
show tables; 查看所有表
drop table MyClass; 删除数据表
insert into MyClass values(1,'Tom',20,96.45),(2,'Joan',21,82.99), (3,'Wang',22,96.59);  表插入数据
insert into MyClass values(1,'Tom',20,96.45);  表插入数据
select * from MyClass order by id limit 0,2; 查询表中的数据
delete from MyClass where id=1; 删除表中数据
update MyClass set name='Mary' where id=1; 修改表中数据
alter table MyClass add passtest int(4) default '0'; 增加字段
rename table MyClass to YouClass; 修改表名
exit

部署mariadb

docker pull bitnami/mariadb:latest
docker pull bitnami/testlink:latest
mkdir -p /root/docker/testlink_home
chmod 777 /root/docker/testlink_home

部署数据库

docker network rm test_link
docker network create test_link
docker run -d --name mariadb --net test_link --restart=always --privileged=true -v /root/docker/testlink_home/mariadb:/bitnami -e MARIADB_ROOT_PASSWORD=mariadb -e MARIADB_USER=bn_testlink -e MARIADB_PASSWORD=bn_testlink -e MARIADB_DATABASE=bitnami_testlink bitnami/mariadb
  • -d:后台运行
    –name:设置别名
    -e:设置参数
    -e MARIADB_ROOT_PASSWORD=mariadb:设置管理员密码
    -e MARIADB_USER=bn_testlink:创建一个用户
    -e MARIADB_PASSWORD=bn_testlink:用户密码
    -e MARIADB_DATABASE=bitnami_testlink:新建数据库
    –net testlink:指定网络
    -v ${PWD}/mariadb:/bitnami bitnami/mariadb:10.3.22:挂载目录

部署 Testlink

docker run -d -p 8280:8080 -p 8443:8443 --name testlink --net test_link --restart=always --privileged=true -v /root/docker/testlink_home/testlink:/bitnami -e TESTLINK_DATABASE_USER=bn_testlink -e TESTLINK_DATABASE_PASSWORD=bn_testlink -e TESTLINK_DATABASE_NAME=bitnami_testlink bitnami/testlink
  • -p 80:80:http协议端口
    -p 443:443:https协议端口
    –name testlink :设置别名
    -e:设置参数
    -e TESTLINK_DATABASE_USER=bn_testlink:传入数据库用户
    -e TESTLINK_DATABASE_PASSWORD=bn_testlink:传入数据库密码
    -e TESTLINK_DATABASE_NAME=bitnami_testlink:传入数据库名
    –net testlink:指定网络和数据库一个网络下
    -v ${PWD}/testlink:/bitnami :挂载一个目录
    bitnami/testlink:1.9.20:镜像的版本信息和名字

访问

浏览器内访问:http://你的IP地址:端口

  • 8080 和 8443 为 HTTP/HTTPS 访问端口。
  • 默认用户:user,默认密码:bitnami

配置java环境

yum install java
which java
ls -lr /usr/bin/java
ls -lrt /etc/alternatives/java
vim /etc/profile
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64
export JRE_HOME=$JAVA_HOME/jre  
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH  
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
source /etc/profile  
echo $JAVA_HOME
which java

部署jira

docker pull 16888888/jira:v1.0
docker pull 16888888/jira_mysql:v1.0

端口映射为宿主机8181端口映射jira容器8080端口,宿主机8182端口映射MySQL容器3306端口,有端口冲突更改容器端口映射:

docker start -it -d jira_mysql:v1.0
docker start -it -d jira:v1.0
docker pull atlassian/jira-software
mkdir -p /root/docker/jira_home
chmod 777 /root/docker/jira_home
docker network rm net_jira
docker network create net_jira
docker pull mysql:5.7
docker run -d -p 3307:3306 --name mysql_jira --privileged=true --net net_jira -v /var/lib/mysql:/var/lib/mysql -v /etc/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
vim /etc/mysql/conf.d/my.cnf
[mysqld]
sql_mode = NO_AUTO_VALUE_ON_ZERO
innodb_file_format=Barracuda
innodb_large_prefix=ON
innodb_default_row_format=DYNAMIC
character_set_server=utf8mb4
collation-server = utf8mb4_unicode_ci
default-storage-engine=INNODB
docker restart mysql_jira

docker exec -it mysql_jira bash
mysql -u root -p
123456
alter user 'root'@'localhost' identified by '123456'; 使用root登录
show variables like '%default_storage_engine%';
show variables like '%character_set_server%';
show variables like '%innodb_default_row_format%';
show variables like '%innodb_large_prefix%';
show variables like '%innodb_file_format%';
show variables like '%innodb_log_file_size%';
show variables like '%sql_mode%';
drop database jiradb; 删除数据库
create database jiradb character set utf8mb4 collate utf8mb4_bin; 创建数据库
grant select,insert,update,delete,create,drop,alter,index on jiradb.* to 'root'@'42.192.73.147' identified by '123456';
show grants for root@42.192.73.147;
flush privileges; 授权
show databases; 查看所有数据库
docker run -d -p 8069:8080 --name jira --privileged=true --net host -v /var/atlassian/application-data/jira:/var/atlassian/application-data/jira atlassian/jira-software

配置数据库驱动

yum install wget

  1. 下载驱动:
    wget https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.25.tar.gz
    tar -zxf mysql-connector-java-8.0.25.tar.gz
  2. 复制驱动到容器
    docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar jira:/opt/atlassian/jira/atlassian-jira/WEB-INF/lib/
    docker cp mysql-connector-java-8.0.25/mysql-connector-java-8.0.25.jar jira:/opt/atlassian/jira/lib
  3. 重启容器:
    docker exec -it jira bash
    chmod 777 /opt/atlassian/jira/atlassian-jira/WEB-INF/lib/mysql-connector-java-8.0.25.jar
    chmod 777 /opt/atlassian/jira/lib/mysql-connector-java-8.0.25.jar
    exit
    docker restart jira
docker run -d -p 3306:3306 --name mysql_jira --restart always --privileged=true -u root -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

docker run -d -p 8083:8083 -p 8086:8086 --name=influxdb1 --restart=always --privileged=true -u root --network grafana influxdb:1.7.10
docker run -d -p 8083:8083 -p 8086:8086 --name=influxdb1 --restart always --privileged=true -u root influxdb:1.7.10

curl -i -XPOST http://localhost:8086/query --data-urlencode "q=CREATE DATABASE jmeter"

docker run -d -p 8080:8080 -p 50000:50000 --name jenkins1 --restart always --privileged=true -u root jenkins/jenkins

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

工厂设备报修的流程是怎样的?维修流程要如何优化?

在当今高度自动化的生产环境中,工厂设备的正常运行无疑对于企业的生产效率和经济效益具有至关重要的影响。然而,设备故障是生产过程中不可避免的现象。当设备发生故障时,如何快速、有效地进行报修、维修,以恢复设备的正常运转&…

Activiti

序言 activiti是一个工作流引擎,可以将业务系统中复杂的业务流程抽取出来,使用专门的建模语言BPMN进行定义(所以我们也需要了解BPMN相关信息),业务流程按照预先定义的流程进行执行。实现了系统的流程由activiti进行管理,减少业务系…

Linux--信号

一.引号的产生 1.什么是信号 在生活中,信号的产生是多种多样的,比如红绿灯,闹钟等等,Linux中的信号是什么呢? 1.在Linux中,信号的本质是一种通信方式,由用户或操作系统发送信号,通知…

性格软弱怎么办?如何改变性格软弱?

软弱指的是身体衰弱无力气,而这里要说的是性格软弱,性格软弱的人,大多是不自信的,无主见,容易妥协,害怕产生矛盾,遇到问题就想逃避,自我否定,担心自己这也不行那也不行。…

vue+css动画 实现文字的上下轮播切换

突然间碰到一个比较丝滑的特效,就研究了一下想把它实现出来。 效果:渐隐消失,底部往上走覆盖出现 以下是完整代码,复制粘贴即可运行 <template><div class="aaa"><divclass="page1":class="{ private-fade-out: prevIndex === 1…

代码随想录算法训练营第四十七天丨 动态规划part10

121. 买卖股票的最佳时机 思路 动态规划 动规五部曲分析如下&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][0] 表示第i天持有股票所得最多现金 &#xff0c;这里可能有疑惑&#xff0c;本题中只能买卖一次&#xff0c;持有股票之后哪还有…

Python大语言模型实战-利用ChatDev框架自动开发一个游戏软件(附完整教程)

实现功能 ChatDev一个由多智能体协作框架&#xff0c;是一个虚拟软件公司&#xff0c;在人类 “用户” 指定一个具体的任务需求后&#xff0c;不同角色的智能体将进行交互式协同&#xff0c;以生产一个完整软件&#xff08;包括源代码、环境依赖说明书、用户手册等&#xff09…

利用IP风险画像强化金融行业网络安全防御

在数字化时代&#xff0c;金融行业日益依赖互联网和技术创新&#xff0c;但这也使得金融机构成为网络攻击的主要目标。为了应对日益复杂的网络威胁&#xff0c;金融机构迫切需要采用先进的安全技术和工具。其中&#xff0c;IP风险画像技术成为提升网络安全的一项重要策略。 1.…

若依分离版——使用Knife4j 自动生成接口文档

背景&#xff1a; 前后端分离程序&#xff0c;如果需要前端开发人员和后端开发人员配合开发&#xff0c;则需要将接口文档并显性给前端人员 解决办法&#xff1a; 使用knife4j替代若依自带的swagger&#xff0c;因为knife4j是在swagger基础上包装的&#xff0c;Knife4j不仅具…

Django生鲜蔬菜采购系统-计算机毕设 附源码 24033

Django生鲜蔬菜采购系统 目 录 摘要 1 绪论 1.1 研究背景 1.2国内外研究现状 1.3论文结构与章节安排 2 生鲜蔬菜采购系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 操作可行性分析 2.2 系统流程分析 2.2.1 数据流程 3.3.2 业务流…

react类式组件的生命周期和useEffect实现函数组件生命周期

概念 生命周期是一个组件丛创建,渲染,更新,卸载的过程,无论是vue还是react都具有这个设计概念,也是开发者必须熟练运用的,特别是业务开发,不同的生命周期做不同的事是很重要的. ....多说两句心得,本人是先接触vue的,无论是vue2还是vue3的生命周期,在理解和学习上都会比react更…

【三维重建】摄像机几何

针孔相机模型 为了方便我们对针孔相机模型进行数学建模&#xff0c;我们往往对虚拟像平面进行研究&#xff0c;因为虚拟像平面的方向与我们实际物体的方向一致。 通过相似三角形法可以得到三维坐标到二维坐标映射 将像平面原点坐标移动到左下角&#xff1a; 加上现实世界单位&a…

Excel表列序号

题意&#xff1a; 给你一个字符串 columnTitle &#xff0c;表示 Excel 表格中的列名称。返回 该列名称对应的列序号 。 例如&#xff1a; A -> 1 B -> 2 C -> 3 … Z -> 26 AA -> 27 AB -> 28 … 示例 1: 输入: columnTitle “A” 输出: 1 示例 2: 输…

植物补光灯,哪种效果好?

室内种植物有诸多好处&#xff1a;空间装饰、吸收有害物质、释放氧气&#xff0c;使室内空气更加清新&#xff1b;植物的蒸腾作用可以增加室内的湿度&#xff0c;改善秋冬季干燥的室内环境&#xff0c;可谓是天然的加湿器。 然而由于缺乏太阳光&#xff0c;在室内养植并不是一…

Matlab设置figure中标题/图例英文不同字体

1.创建一个曲线图 x linspace(-10,10,200); y sin(4*x)./exp(x); plot(x,y) xlim([0 10]) ylim([-0.4 0.8]) xlabel(a); ylabel(b); title(曲线图sapi); set(gca,FontName,Times New Roman,fontsize,16); legend(曲线12)标题中既包含英文又包含中文&#xff0c;如果设置字体…

玩具品牌的国际化之路:市场推广战略解析

玩具产业一直是全球市场中备受瞩目的领域之一。随着全球化的发展和互联网的普及&#xff0c;越来越多的玩具品牌开始进军国际市场。这既是机遇&#xff0c;也是挑战。在竞争激烈的全球市场中&#xff0c;如何成功推广玩具品牌是一个关键的问题。本文Nox聚星将和大家探讨玩具品牌…

一台主机上只能保持最多 65535 个 TCP 连接吗?

大家好&#xff0c;我是老杨。 在知乎上刷到一个问题&#xff0c;叫做“一台主机上只能保持最多 65535 个 TCP 连接吗&#xff1f;” 关注度极高&#xff0c;想着咱们粉丝也一定有兴趣&#xff0c;就展开聊一聊。 对技术感兴趣&#xff0c;是做我们这一行必须要有的品质之一…

6大顶级团队计划目标管理软件盘点,全行业适用!

在快节奏的现代工作环境中&#xff0c;高效的团队计划和执行是团队取得成功的关键。然而&#xff0c;随着团队规模不断增大、工作任务不断增加&#xff0c;如何提高团队计划与效率成为了一个挑战。幸运的是&#xff0c;有许多先进的软件工具可以帮助团队更好地组织、协调和追踪…

【Python基础】基于UPD协议实现简易聊天室(Socket编程)

UDP通信 1.什么是 socket2. 创建 socket3.udp 网络程序-发送、接收数据&#xff08;User Datagram Protocol&#xff09;udp 网络程序-发送、接收数据&#xff08;客户端&#xff09;udp 绑定信息udp 绑定信息---服务器端总结 4.udp 聊天器 1.什么是 socket socket(简称 套接字…

遍历List集合和Map进行修改和删除报java.util.ConcurrentModificationException错误详解

一、异常产生 当我们使用foreach迭代一个ArrayList或者HashMap时&#xff0c;如果尝试对集合做一些修改操作&#xff08;例如删除元素或新增&#xff09;&#xff0c;可能会抛出java.util.ConcurrentModificationException的异常。 javapublic static void main(String[] args)…
最新文章