Docker简单安装| 常用命令 | 相关软件(MySQL、Redis、Nacos)单机安装

该博客详细介绍了如何在CentOS7系统中使用Docker安装和配置一系列常用的信息技术服务,包括MySQL、Redis、Nacos、XXL-Job、RocketMQ、ElasticSearch和Kibana。步骤详尽,涵盖从创建普通用户到各个服务的启动、配置以及防火墙设置,适合开发本地环境的搭建。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仅作为开发本地环境搭建参考

0. 创建普通账号(test)

  为了安全起见,我们是不会直接用root账号,一般是会用普通账号,在这里我创建一个普通账号(test).

# 1. 创建普通用户(test)
[root@dev-application ~]# useradd test

# 2. 设置test密码
[root@dev-application ~]# passwd test

# 3. 为test账号配置sudo权限
[root@dev-application ~]# vi /etc/sudoers

## Allow root to run any commands anywhere
# 增加如下内容( 允许用户app不需要输入密码即可即行sudo  )
test     ALL=(ALL)       NOPASSWD:ALL

1. Centos7下安装Docker

# 设置稳定安装源
[test@localcentos ~]$ sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
[test@localcentos ~]$ sudo yum install -y yum-utils device-mapper-persistent-data lvm2

# 安装docker
[test@localcentos ~]$ sudo yum install -y docker-ce
 1.1. 查看docker版本,验证是否安装成功

docker version

在这里插入图片描述

 1.2. 启动docker服务&&查看是否启动成功&&设置开机启动
# 启动docker
[test@localcentos ~]$ sudo systemctl start docker
# 查看是否启动成功
[test@localcentos ~]$ sudo systemctl status docker
# 设置开机启动
[test@localcentos ~]$ sudo systemctl enable docker

在这里插入图片描述

 1.3. 查看docker已安装镜像

docker ps
docker stop CONTAINER ID(可全写可写部分开头)

在这里插入图片描述

 1.4. 卸载docker已安装镜像
  1.4.1. 查看镜像实例是否运行 && 停止镜像实例进程

docker ps
docker stop CONTAINER ID(可全写可写部分开头)

在这里插入图片描述

  1.4.2. 卸载镜像实例

docker ps -a # 列出所有容器实例,包括未运行的
docker rm CONTAINER ID

在这里插入图片描述

执行后,镜像还在,但是容器实例已经被卸载

  1.4.3. 卸载镜像

docker rmi IMAGE ID

在这里插入图片描述

 1.5. 检索镜像

docker search mysql

在这里插入图片描述

其中OFFICIAL说明是否是官方镜像;上述结果其实是从镜像库进行检索

在这里插入图片描述

在tag中还能找到是否有指定版本
在这里插入图片描述

 1.6. 拉取镜像

docker pull mysql:版本号 #不写:版本号默认最新版本
docker pull mysql:5.7

 1.7. 启动已经停止的容器实例

docker start CONTAINER ID(可全写可写部分开头)

在这里插入图片描述

 1.8. 进入容器实例:

docker container exec -it 容器id(或者name) /bin/sh

在这里插入图片描述

2. Docker安装MySQL

 2.1. 下载mysql5.7
# 1. 安装tree(可忽略)
[test@localcentos ~]$ yum -y install tree

# 2. 创建mysql应用程序的数据目录(可忽略)
[test@localcentos ~]$ mkdir -p ~/application/mysql/{conf,logs,data}

# 3. 查看mysql应用程序的数据目录(可忽略)
[test@localcentos ~]$ tree
.
└── application
    └── mysql
        ├── conf
        ├── data
        └── logs

# 3. 下载mysql5.7
[test@localcentos ~]$ sudo docker pull mysql:5.7
# 4. 查看拉取的镜像
[test@localcentos home]$ docker images

在这里插入图片描述

 2.2. 基于镜像创建mysql容器实例
# 5. 基于镜像创建mysql容器实例
#    注意: MYSQL_ROOT_PASSWORD请自行填写
#    注意: /home/app/application/mysql为宿主机目录
[test@localcentos home]$ sudo docker run -p 3306:3306 --name mysql \
-v /home/test/testlication/mysql/conf:/etc/mysql \
-v /home/test/testlication/mysql/logs:/var/log/mysql \
-v /home/test/testlication/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

参数说明:

  • -p 3306:3306 :映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务。
  • MYSQL_ROOT_PASSWORD=123456:设置 MySQL 服务 root 用户的密码。
  • -v 操作在容器创建的过程时候可以将宿主机的目录挂载到容器内

在这里插入图片描述

 2.3. 授权root允许访问
# 1. 进入mysql容器
[test@localcentos ~]$ sudo docker  exec -it mysql /bin/bash

# 2. root用户登录mysql
# mysql -u root -p

#3. 修改允许root远程访问
# alter user 'root'@'%' identified with mysql_native_password by '123456';

# 4. 给某个用户授权
# grant all privileges on . to 'root'@'%' identified by '123456' with grant option;

# 5. 刷新授权
# flush privileges;
# exit  #退出容器

在这里插入图片描述

 2.4. 防火墙允许3306放行
  • sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • sudo firewall-cmd --reload

在这里插入图片描述

至此,可以用navicat等工具远程连接mysql

 2.5. 主从复制-读写分离

主从复制-读写分离

3. Docker安装Redis

# 1. 拉取redis镜像
[test@localcentos ~]$ sudo docker pull redis

# 2. 运行redis
[test@localcentos ~]$ sudo docker run -it -d --restart=always --name redis -p 6379:6379 redis

# 3. 防火墙放行
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=6379/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

# 4. 进入redis容器
[test@localcentos ~]$ docker exec -it redis /bin/bash
# 5.  redis-cli 连接测试使用 redis 服务

–restart=always 后,当 docker 重启时,容器自动启动。

设置密码则执行:sudo docker run -it -d --restart=always --name redis -p 6379:6379 redis --requirepass 123456

在这里插入图片描述

4. Docker安装Nacos

需要注意,nacos需要数据库,所以,需要创建数据库和和表. 数据库执行如下脚本文件即可
nacos.sql

在这里插入图片描述

# 1. 拉取镜像
[test@localcentos ~]$ sudo docker pull nacos/nacos-server

# 2. 运行nacos
#    注意配置mysql:ip地址/数据库名称/用户名/密码. 
#    NACOS_SERVER_IP : 代表nacos服务器的IP地址. 
#    MYSQL_SERVICE_HOST: mysql服务器IP地址. 
sudo docker run -d  \
--restart=always \
--name nacos \
-p 8848:8848 \
--env MODE=standalone \
--env NACOS_SERVER_IP=192.168.41.128 \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=192.168.41.128 \
--env MYSQL_SERVICE_DB_NAME=nacos \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=123456 \
--env MYSQL_DATABASE_NUM=1 \
nacos/nacos-server

# 3. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=8848/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

在这里插入图片描述

【注意】:如果报错:invalid reference format: repository name must be lowercase.
检查 \ 前面要有空格

访问:http://192.168.41.128:8848/nacos 控制台登录页面;nacos/nacos

在这里插入图片描述

5. Docker安装XXL-Job

可以参考官方文档

需要创建数据库和和表. 数据库执行如下脚本文件即可: tables_xxl_job.sql

在这里插入图片描述

# 1. 拉取镜像
[test@localcentos ~]$ sudo docker pull xuxueli/xxl-job-admin:2.3.0

# 2. 运行xxl-job-admin
#    如需自定义 mysql 等配置,可通过 "-e PARAMS" 指定,参数格式 PARAMS="--key=value  --key2=value2" 
#    如需自定义 JVM内存参数 等配置,可通过 "-e JAVA_OPTS" 指定,参数格式 JAVA_OPTS="-Xmx512m" ;
[test@localcentos ~]$ sudo docker run -d -e PARAMS="--spring.datasource.url=jdbc:mysql://192.168.41.128:3306/xxl_job?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&serverTimezone=Asia/Shanghai \
--spring.datasource.username=root --spring.datasource.password=123456" \
-p 8080:8080 --name xxl-job-admin  --restart=always -d xuxueli/xxl-job-admin:2.3.0

# 3. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=8080/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

在这里插入图片描述

访问:http://192.168.41.128:8080/xxl-job-admin/  进行登录(默认账号/密码:amdin/123456)

在这里插入图片描述

6. Docker安装RocketMQ

 6.1. 安装启动namesrv服务
# 1.拉取镜像
[test@localcentos ~]$ sudo docker pull apache/rocketmq:4.8.0

# 2.创建数据存储路径
[test@localcentos ~]$ sudo mkdir -p  /docker/rocketmq/data/logs   
[test@localcentos ~]$ sudo mkdir -p  /docker/rocketmq/data/store

# 3.创建并运行rocketmq容器实例
[test@localcentos ~]$ sudo docker run -d \
--restart=always \
--name rocketmq \
-p 9876:9876 \
-v /docker/rocketmq/data/logs:/root/logs \
-v /docker/rocketmq/data/store:/root/store \
-e "MAX_POSSIBLE_HEAP=100000000" \
apache/rocketmq:4.8.0 \
sh mqnamesrv  

# 4. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=9876/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

在这里插入图片描述

sh mqnamesrv 是安装包bin/bash的脚本,下文的broke也一样
在这里插入图片描述

 6.2. 启动broker节点

# 1.创建broker数据存储路径
[test@localcentos ~]$ sudo mkdir -p  /docker/rocketmq/data/broker/logs   /docker/rocketmq/data/broker/store /docker/rocketmq/conf

# 2. 宿主机创建broker.conf文件并编辑如下内容,brokerIP1可填宿主机ip
vi /docker/rocketmq/conf/broker.conf
# 所属集群名称,如果节点较多可以配置多个
brokerClusterName = DefaultCluster
#broker名称,master和slave使用相同的名称,表明他们的主从关系
brokerName = broker-a
#0表示Master,大于0表示不同的slave
brokerId = 0
#表示几点做消息删除动作,默认是凌晨4点
deleteWhen = 04
#在磁盘上保留消息的时长,单位是小时
fileReservedTime = 48
#有三个值:SYNC_MASTER,ASYNC_MASTER,SLAVE;同步和异步表示Master和Slave之间同步数据的机制;
brokerRole = ASYNC_MASTER
#刷盘策略,取值为:ASYNC_FLUSH,SYNC_FLUSH表示同步刷盘和异步刷盘;SYNC_FLUSH消息写入磁盘后才返回成功状态,ASYNC_FLUSH不需要;
flushDiskType = ASYNC_FLUSH
# 设置broker节点所在服务器的ip地址
brokerIP1 = 192.168.41.128
# 磁盘使用达到95%之后,生产者再写入消息会报错 CODE: 14 DESC: service not available now, maybe disk full
diskMaxUsedSpaceRatio=95

# 3.创建并运行broker容器实例
[test@localcentos ~]$ sudo docker run -d  \
--restart=always \
--name rmqbroker \
--link rocketmq:namesrv \
-p 10911:10911 \
-p 10909:10909 \
-v /docker/rocketmq/data/broker/logs:/root/logs \
-v /docker/rocketmq/data/broker/store:/root/store \
-v /docker/rocketmq/conf/broker.conf:/home/rocketmq/rocketmq-4.8.0/conf/broker.conf \
-e "NAMESRV_ADDR=namesrv:9876" \
-e "MAX_POSSIBLE_HEAP=200000000" \
apache/rocketmq:4.8.0 \
sh mqbroker -c /home/rocketmq/rocketmq-4.8.0/conf/broker.conf 

# 4. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=10911/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=10909/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

在这里插入图片描述

脚本文件目录可以进入容器后pwd命令查看

在这里插入图片描述

 6.3. 安装启动控制台rocketmq-console
# 1.拉取镜像
[test@localcentos ~]$ sudo docker pull pangliang/rocketmq-console-ng

# 2.创建并运行rocketmq-console容器实例
[test@localcentos ~]$ sudo docker run -d \
--restart=always \
--name rmqadmin \
-e "JAVA_OPTS=-Drocketmq.namesrv.addr=192.168.41.128:9876 \
-Dcom.rocketmq.sendMessageWithVIPChannel=false" \
-p 8089:8080 \
pangliang/rocketmq-console-ng


# 3.防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=8089/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

在这里插入图片描述

访问http://192.168.41.128:8089/进行控制台访问

在这里插入图片描述

7. Docker安装ElasticSearch 7.8.0

 7.1. 安装ElasticSearch
# 1. 拉取ElasticSearch镜像
[test@localcentos ~]$ sudo docker pull redis

# 2. 创建ElasticSearch挂载目录
[test@localcentos ~]$ mkdir -p /docker/elasticsearch/data /docker/elasticsearch/config /docker/elasticsearch/logs /docker/elasticsearch/plugins

# 3. 宿主机编辑修改elasticsearch.yml
[test@localcentos ~]$ echo "http.host : 0.0.0.0" >> /docker/elasticsearch/config/elasticsearch.yml

# 4. 文件夹授权 
[test@localcentos ~]$ chmod 777 -R /docker/elasticsearch

# 5. 启动
[test@localcentos ~]$ sudo docker run --name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
--privileged --restart=always \
-v /docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /docker/elasticsearch/data:/usr/share/elasticsearch/data \
-v /docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /docker/elasticsearch/logs:/usr/share/elasticsearch/logs \
-d elasticsearch:7.8.0

# 6. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=9200/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=9300/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload

http.host:0.0.0.0 代表es可以被远程的任何机器访问

在这里插入图片描述

 7.2. 测试验证 ElasticSearch

访问ip:9200,返回json串

在这里插入图片描述

8. Docker安装Kibana 7.8.0

 8.1. 安装Kibana 7.8.0

注意Kibana和ElasticSearch版本要一致,详情科查看 官方链接

# 1. 拉取Kibana 镜像
[test@localcentos ~]$ sudo docker pull kibana:7.8.0

# 2. 启动
[test@localcentos ~]$ sudo docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.182.128:9200 -p 5601:5601 -d kibana:7.8.0

# 2. 防火墙开放端口
[test@localcentos ~]$ sudo firewall-cmd  --zone=public --add-port=5601/tcp --permanent
[test@localcentos ~]$ sudo firewall-cmd  --reload
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值