说明
docker安装各种组件步骤目前包含docker、mysql8、oracle19c、redis、elasticsearch、kibana、minio等安装步骤,持续待更新中...
本文安装所有组件均为单体组件、集群组件待更新...
1.安装docker
1.1卸载docker命令
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine \
docker-ce
1.2安装前置依赖
yum -y install gcc
yum -y install gcc-c++
sudo yum install -y yum-utils
1.3设置镜像仓库
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
1.4安装docker社区版
# 4.安装docker docker-ce:社区版的,docker-ee:企业版的
sudo yum install -y docker-ce docker-ce-cli containerd.io
1.5启动docker服务
systemctl start docker
1.6查看docker版本
sudo docker version
1.7查看docker运行状态
systemctl status docker
1.8设置docker开机自启
systemctl enable docker.service
1.9重启docker服务
systemctl restart docker
1.10设置镜像加速配置
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://p0ogv17n.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
2.安装mysql8.0
2.1下载mysql镜像
docker pull mysql:8.0
2.2创建宿主机文件夹
#宿主机根目录下创建以下文件夹
mkdir -p /software/mysql8.0/log
mkdir -p /software/mysql8.0/mysql
mkdir -p /software/mysql8.0/conf
2.3修改宿主机mysql配置
vim /software/mysql8.0/conf/my.cnf
#添加以下内容
[client]
default_character_set=utf8mb4
[mysql]
default_character_set=utf8mb4
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
2.4启动mysql测试
docker run \
--restart=always \
--net=host \
--privileged=true \
-p 3306:3306 \
--name mysql8.0 \
-v /software/mysql8.0/log:/var/log/mysql \
-v /software/mysql8.0/data:/var/lib/mysql \
-v /software/mysql8.0/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=密码\
-d mysql:8.0
解释:
–restart=always :docker启动会自动启动该容器
–privileged=true :赋予容器和宿主机几乎相同的权限
-p 3306:3306 :端口映射
–name mysql8.0 :容器名称
-v /software/mysql8.0/log:/var/log/mysql \ :宿主机目录挂载到容器内部的目录
-e MYSQL_ROOT_PASSWORD=密码 :启动时的环境变量,设置root密码为xxxxx
-d mysql:8.0 :容器后台运行
2.5创建mysql用户
-- 1.创建用户和密码
CREATE USER 'hyc'@'%' IDENTIFIED BY '密码';
-- 2.授予账户特定权限。ALL 和 ALL PRIVILEGES 是一样的,可简写为 ALL。
GRANT ALL ON *.* TO 'hyc'@'%' WITH GRANT OPTION;
-- 3.刷新权限
FLUSH PRIVILEGES;
权限:
ALTER: 允许使用 ALTER TABLE 语句。
ALTER ROUTINE: 允许更改和删除存储子程序。
CREATE: 允许创建数据库和表。
CREATE ROUTINE: 允许创建存储子程序。
CREATE TEMPORARY TABLES: 允许使用 CREATE TEMPORARY TABLE 语句。
CREATE USER: 允许使用 CREATE USER, DROP USER, RENAME USER, 和 REVOKE ALL PRIVILEGES 语句。
CREATE VIEW: 允许使用 CREATE VIEW 语句。
DELETE: 允许使用 DELETE 语句。
DROP: 允许使用 DROP TABLE 和 DROP DATABASE 语句。
EVENT: 允许创建、修改和删除事件。
EXECUTE: 允许执行存储子程序。
FILE: 允许使用 SELECT … INTO OUTFILE 和 LOAD DATA INFILE 语句。
INDEX: 允许使用 CREATE INDEX 和 DROP INDEX 语句。
INSERT: 允许使用 INSERT 语句。
LOCK TABLES: 允许使用 LOCK TABLES 语句。
PROCESS: 允许使用 SHOW FULL PROCESSLIST 语句。
REFERENCES: 未被当前版本的MySQL使用。
RELOAD: 允许使用 FLUSH 语句。
REPLICATION CLIENT: 允许查询二进制日志文件位置。
REPLICATION SLAVE: 允许复制从属服务器连接到主服务器。
SELECT: 允许使用 SELECT 语句。
SHOW DATABASES: 允许使用 SHOW DATABASES 语句。
SHOW VIEW: 允许使用 SHOW CREATE VIEW 语句。
SHUTDOWN: 允许使用 mysqladmin shutdown 命令。
SUPER: 允许使用 CHANGE MASTER, KILL, PURGE BINARY LOGS, 和 SET GLOBAL 语句,以及 mysqladmin debug 命令。当启用 binary logging 时,允许使用设置用户变量。
TRIGGER: 允许创建和删除触发器。
UPDATE: 允许使用 UPDATE 语句.
USAGE: “无权限”权限。
例如:
-- 假设我们要为用户 'hyc'@'%' 添加 SELECT, INSERT, 和 UPDATE 权限:
GRANT SELECT, INSERT, UPDATE ON *.* TO 'hyc'@'%';
/*
1.选择多个权限:
使用逗号分隔多个权限。
2.指定数据库和表:
*.* 表示所有数据库中的所有表。
可以使用 database_name.* 来指定某个数据库中的所有表。
可以使用 database_name.table_name 来指定某个数据库中的特定表。
3.指定用户和主机:
'username'@'host' 格式用于指定用户和主机。
*/
3.安装oracle19c
3.1下载oracle19c镜像
docker pull registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c
3.2重命名oracle19c镜像名称
docker tag registry.cn-hangzhou.aliyuncs.com/zhuyijun/oracle:19c oracle:19c
3.3创建挂载目录并设置权限
mkdir -p /software/oracle/data
chmod 777 /software/oracle/data
3.4启动oracle19c容器
docker run \
-p 1521:1521 -p 5500:5500 \
-e ORACLE_SID=ORCLCDB \
-e ORACLE_PDB=ORCLPDB \
-e ORACLE_PWD=密码 \
-e ORACLE_EDITION=standard \
-e ORACLE_CHARACTERSET=AL32UTF8 \
-v /software/oracle/data:/opt/oracle/oradata \
--name oracle19c \
-d oracle:19c
3.5plsql工具连接
3.6创建用户设置权限
-- 创建表空间
CREATE TABLESPACE TS_YCH
DATAFILE '/opt/oracle/oradata/ORCLCDB/TS_YCH.dbf'
SIZE 100M
AUTOEXTEND ON
NEXT 50M MAXSIZE UNLIMITED;
-- 创建用户
CREATE USER YCH IDENTIFIED BY 密码
DEFAULT TABLESPACE TS_YCH
TEMPORARY TABLESPACE temp;
-- 授予基本权限
GRANT CREATE SESSION, CREATE TABLE TO YCH;
-- 授予超级用户权限
GRANT SYSDBA TO YCH;
4.安装redis
4.1下载redis最新版镜像
docker pull redis
4.2创建挂载目录
#创建目录
mkdir -p /software/redis/config
mkdir -p /software/redis/data
#创建配置文件
vim /software/redis/config/redis.conf
#添加以下内容
bind 0.0.0.0
protected-mode yes
port 6379
requirepass 密码
dir /data
appendonly yes
#bind 0.0.0.0:允许所有 IP 访问 Redis 实例(仅在受信任的网络环境中使用)。
#protected-mode yes:开启保护模式。
#port 6379:Redis 默认端口。
#requirepass your_redis_password:设置 Redis 访问密码,请将 your_redis_password 替换为你自己的密码。
#dir /data:指定 Redis 数据目录。
#appendonly yes:开启 AOF 持久化。
4.3启动运行容器
docker run -d \
--name redis \
-p 6379:6379 \
-v /software/redis/config/redis.conf:/usr/local/etc/redis/redis.conf \
-v /software/redis/data:/data \
redis:latest redis-server /usr/local/etc/redis/redis.conf
5.安装elasticsearch
5.1下载elasticsearch镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.1
5.2创建挂载目录
#1.新建挂载目录
mkdir -p /software/elasticsearch/config
mkdir -p /software/elasticsearch/data
mkdir -p /software/elasticsearch/logs
5.3编辑配置文件
#2.创建配置文件
vim /software/elasticsearch/config/elasticsearch.yml
#3.添加以下配置内容
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#----------------------- BEGIN SECURITY AUTO CONFIGURATION -----------------------
##
## The following settings, TLS certificates, and keys have been automatically
## generated to configure Elasticsearch security features on 27-06-2024 01:35:31
##
## --------------------------------------------------------------------------------
#
## Enable security features
xpack.security.enabled: true
#
xpack.security.enrollment.enabled: true
#
## Enable encryption for HTTP API client connections, such as Kibana, Logstash, and Agents
xpack.security.http.ssl:
enabled: true
keystore.path: certs/http.p12
#
# # Enable encryption and mutual authentication between cluster nodes
# xpack.security.transport.ssl:
# enabled: true
# verification_mode: certificate
# keystore.path: certs/transport.p12
# truststore.path: certs/transport.p12
# #----------------------- END SECURITY AUTO CONFIGURATION -------------------------
5.4挂载目录授权
很重要
#4.赋值权限
chmod -R 777 /software/elasticsearch/data
chmod -R 777 /software/elasticsearch/config
chmod -R 777 /software/elasticsearch/logs
5.5启动elasticsearch镜像
docker run -d \
--name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "ELASTIC_PASSWORD=密码" \
-v /software/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /software/elasticsearch/data:/usr/share/elasticsearch/data \
-v /software/elasticsearch/logs:/usr/share/elasticsearch/logs \
docker.elastic.co/elasticsearch/elasticsearch:8.14.1
5.6验证es的启动状态
docker ps -a | grep elasticsearch
5.7浏览器查看elasticsearch信息
#默认用户密码:elastic/密码 密码是 -e "ELASTIC_PASSWORD=密码" 启动容器的环境变量设置
地址:http://ip:9200/
`成功信息`:
{
"name": "aa1adc1e3e18",
"cluster_name": "elasticsearch",
"cluster_uuid": "4pTHHf-vSZiz-tieol60Iw",
"version": {
"number": "8.14.1",
"build_flavor": "default",
"build_type": "docker",
"build_hash": "93a57a1a76f556d8aee6a90d1a95b06187501310",
"build_date": "2024-06-10T23:35:17.114581191Z",
"build_snapshot": false,
"lucene_version": "9.10.0",
"minimum_wire_compatibility_version": "7.17.0",
"minimum_index_compatibility_version": "7.0.0"
},
"tagline": "You Know, for Search"
}
5.8创建角色、用户
#1.默认用户elastic不能用于连接kibana
#创建角色、角色授权
curl -X PUT "http://localhost:9200/_security/role/kibana-user" -u elastic:密码 -H 'Content-Type: application/json' -d'
{
"cluster": ["all"],
"indices": [
{
"names": ["*"],
"privileges": ["all"],
"allow_restricted_indices": true
}
],
"applications": [
{
"application": "*",
"privileges": ["*"],
"resources": ["*"]
}
],
"run_as": ["*"],
"metadata": {
"reserved": true
},
"transient_metadata": {
"enabled": true
},
"remote_indices": [
{
"names": ["*"],
"privileges": ["all"],
"allow_restricted_indices": true,
"clusters": ["*"]
}
]
}'
#创建用户
curl -X POST "http://localhost:9200/_security/user/kibana_user" \
-H 'Content-Type: application/json' \
-u elastic:密码 \
-d '{
"password" : "密码",
"roles" : [ "kibana-user" ]
}'
6.安装kibana
6.1下载kibana镜像
注意kibana的版本与elasticsearch的版本需要一致
docker pull docker.elastic.co/kibana/kibana:8.14.1
6.2创建挂载目录
#1.创建文件夹
mkdir -p /software/kibana/config
#2.创建编辑配置文件
vim /software/kibana/config/kibana.yml
#3.将下面配置写入到配置文件中 (注意ip地址)
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://192.168.177.130:9200"]
server.shutdownTimeout: "5s"
monitoring.ui.container.elasticsearch.enabled: true
#该用户密码为创建es用户角色处
elasticsearch.username: "kibana_user"
elasticsearch.password: "密码"
6.3启动kibana容器
docker run -d \
--name kibana \
-v /software/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \
-p 5601:5601 \
docker.elastic.co/kibana/kibana:8.14.1
6.4启动浏览器查看结果
地址 :http://192.168.177:5601
使用 kibana配置中的账号密码登录
7.安装minio
7.1下载minio镜像
docker pull minio/minio
7.2创建挂载目录
mkdir -p /software/minio/data
mkdir -p /software/minio/config
#赋值权限
chmod -R 777 /software/minio/data
chmod -R 777 /software/minio/config
7.3启动容器
docker run -d \
--name minio \
-p 9000:9000 \
-p 9001:9001 \
--net=host \
--privileged=true \
-e "MINIO_ROOT_USER=admin" \
-e "MINIO_ROOT_PASSWORD=密码" \
-v /software/minio/data:/data \
-v /software/minio/config:/root/.minio \
minio/minio server \
--console-address ":9000" \
--address ":9001" /data
7.4测试地址
测试地址:http://192.168.177.130:9000
结果: