更换apt源
# 更新源
sudo apt update
# 安装gedit
sudo apt install gedit
# 备份源
sudo cp /etc/apt/sources.list /etc/apt/sources_init.list
# 更换源
sudo gedit /etc/apt/sources.list
# ubuntu阿里源从这里找
https://developer.aliyun.com/mirror/ubuntu
# 更新源
sudo apt update
# 更新软件
sudo apt upgrade
安装openJdk8
sudo apt update
sudo apt -y install openjdk-8-jdk
安装Docker
# 更新数据源
sudo apt update
# 安装所需依赖
sudo apt -y install apt-transport-https ca-certificates curl software-properties-common
#安装GPG证书
curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -
#新增阿里云数据源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"
#更新并安装docker
sudo apt update
sudo apt install -y docker-ce
# 验证安装
docker version
# 进入docker目录
cd /etc/docker/
# 新建daemon.json文件,更换镜像源
vim daemon.json
{
"registry-mirrors" : ["https://docker.mirrors.ustc.edu.cn"]
}
# 使镜像生效
sudo systemctl daemon-reload
# 重启docker
sudo systemctl restart docker
安装Redis
# 搜索redis镜像
sudo docker search redis
# 拉取redis镜像
sudo docker pull redis:latest
# 创建目录用于挂载redis配置文件
sudo mkdir -p /mnt/redis/conf
sudo mkdir -p /mnt/redis/data
# 创建Redis容器并启动
sudo docker run \
--restart=always \
--log-opt max-size=100m --log-opt max-file=2 \
-p 6379:6379 \
--name redis \
-v /home/redis/redis.conf:/etc/redis/redis.conf \
-v /home/redis/data:/data \
-d redis \
redis-server /etc/redis/redis.conf \
--appendonly yes \
--requirepass 123456
# 进入容器内部
sudo docker exec -it redis bash
--restart=always
总是开机启动--log-opt
日志参数设置-p 6379:6379
挂载6379端口--name
指定容器名称-v /home/redis/redis.conf:/etc/redis/redis.conf
挂载配置文件-d
以守护进程启动redis-server /etc/redis/redis.conf
指定配置文件启动redis--appendonly yes
开启AOF模式--requirepass 123456
设置密码
安装Nginx
sudo docker search nginx
sudo docker pull nginx
# 创建挂载目录
sudo mkdir -p /home/nginx/conf
sudo mkdir -p /home/nginx/log
sudo mkdir -p /home/nginx/html
# 生成容器
sudo docker run --restart=always --name nginx -p 80:80 -d nginx
# 将容器nginx.conf文件复制到宿主机
sudo docker cp nginx:/etc/nginx/nginx.conf /home/nginx/conf/nginx.conf
# 将容器conf.d文件夹下内容复制到宿主机
sudo docker cp nginx:/etc/nginx/conf.d /home/nginx/conf/conf.d
# 将容器中的html文件夹复制到宿主机
sudo docker cp nginx:/usr/share/nginx/html /home/nginx/
# 删除正在运行的nginx容器
sudo docker rm -f nginx
# 启动容器
sudo docker run \
-p 80:80 \
--name nginx \
-v /home/nginx/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /home/nginx/conf/conf.d:/etc/nginx/conf.d \
-v /home/nginx/log:/var/log/nginx \
-v /home/nginx/html:/usr/share/nginx/html \
-d nginx:latest
安装Rabbitmq
# 查找镜像
sudo docker search rabbitmq
# 拉取镜像
sudo docker pull rabbitmq
# 启动容器
sudo docker run -d --restart=always --name rabbitmq -p 15672:15672 -p 5672:5672 rabbitmq
# 进入容器内部
sudo docker exec -it rabbitmq /bin/bash
# 开启rabbitmq控制台插件(默认用户名密码 guest/guest)
rabbitmq-plugins enable rabbitmq_management
# 修改guest密码
rabbitmqctl change_password guest 123456
# 新增用户
rabbitmqctl add_user admin 123456
# 设置用户角色
rabbitmqctl set_user_tags admin administrator
rabbitmqctl list_users
# 为用户赋权
# 使用户rabbit具有vhost1这个virtual host中所有资源的配置、写、读权限以便管理其中的资源
rabbitmqctl set_permissions -p / rabbit '.*' '.*' '.*'
# 查看权限
rabbitmqctl list_user_permissions rabbit
rabbitmqctl list_permissions -p vhost1
# 清除权限
rabbitmqctl clear_permissions [-p VHostPath] User
# 删除用户
rabbitmqctl delete_user rabbit
角色分类
- none:普通的生产者和消费者,无法登录控制台
- management:普通管理者
- 无法看到节点信息
- 无法对policies进行管理
- 可登录控制台
- 可查看自己通过AMQP登入的virtual hosts
- 可查看自己virtual hosts中的queues,exchanges和bindings
- 可查看和关闭自己的channels和connections
- 可查看有关自己的virtual hosts的全局统计信息
- policymaker:策略制定者,除了拥有management的权限外,还可查看、创建和删除自己的virtual hosts所属的policies和parameters
- monitoring:监控者,除了拥有management的权限外,还包括
- 列出所有virtual hosts,包括他们不能登录的virtual hosts
- 查看其他用户的connections和channels
- 查看节点级别的数据如clustering和memory使用情况
- 查看真正的关于所有virtual hosts的全局的统计信息
- 同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
- administrator:超级管理员,除了拥有policymaker和monitoring的权限外,还包括
- 创建和删除virtual hosts
- 查看、创建和删除users
- 查看创建和删除permissions
- 关闭其他用户的connection
安装Nacos
# 搜索镜像
sudo docker search nacos
# 拉取镜像
sudo docker pull nacos/nacos-server
# 以单机模式(standalone)运行容器,单机模式默认jvm参数为JVM_XMS=512M,JVM_XMX=512M,JVM_XMN=256M,可在nacos/bin/startup.sh中设置
sudo docker run -d -p 8848:8848 -p 9849:9848 \
--restart=always \
--name nacos \
--env MODE=standalone \
--env SPRING_DATASOURCE_PLATFORM=mysql \
--env MYSQL_SERVICE_HOST=192.168.16.38 \
--env MYSQL_SERVICE_PORT=3306 \
--env MYSQL_SERVICE_DB_NAME=nacos \
--env MYSQL_SERVICE_USER=root \
--env MYSQL_SERVICE_PASSWORD=root \
nacos/nacos-server:latest
安装Seata
# 拉取镜像
sudo docker pull seataio/seata-server:1.4.1
# 启动容器
sudo docker run -d --name seata -p 8091:8091 seataio/seata-server:1.4.1
# 创建挂载目录
sudo mkdir /mnt/seata
# 复制seata容器配置文件到宿主机
sudo docker cp seata:/seata-server/resources/registry.conf /mnt/seata
# 修改配置文件,包括注册中心和配置中心
sudo vim /mnt/seata/registry.conf
# 删除运行中的容器
sudo docker rm -f seata
# SEATA_IP为宿主IP,即服务器IP,若nacos和seata在同一台服务器上可不设置
sudo docker run \
-d \
--restart=always \
--name seata \
-p 8091:8091 \
-e SEATA_IP=192.168.16.38 \
-v /mnt/seata/test/registry.conf:/seata-server/resources/registry.conf \
-v /mnt/seata/test/file.conf:/seata-server/resources/file.conf \
seataio/seata-server:1.4.1
安装Sentinel
# 拉取镜像
sudo docker pull bladex/sentinel-dashboard:1.8.0
# 启动容器
sudo docker run \
-d \
--restart=always \
--name sentinel \
-p 8858:8858 \
-p 8719:8719 \
bladex/sentinel-dashboard:1.8.0
安装Minio
sudo docker pull quay.io/minio/minio
sudo mkdir -p /mnt/minio/{data,config}
sudo docker run -d \
--restart always \
-p 9000:9000 \
-p 9001:9001 \
--name minio \
-v /mnt/minio/data:/data \
-v /mnt/minio/config:/root/.minio \
-e "MINIO_ROOT_USER=minioadmin" \
-e "MINIO_ROOT_PASSWORD=minioadmin" \
quay.io/minio/minio server /data --console-address ":9001"
安装Mysql
sudo docker pull mysql
sudo docker pull mysql:5.7
sudo mkdir -p /mnt/mysql/{log,data,conf}
sudo docker run \
-p 3306:3306 \
--name mysql \
-v /mnt/mysql/log:/var/log/mysql \
-v /mnt/mysql/data:/var/lib/mysql \
-v /mnt/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7