ubuntu使用docker搭建微服务环境

1 篇文章 0 订阅
1 篇文章 0 订阅

更换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
  1. --restart=always 总是开机启动
  2. --log-opt 日志参数设置
  3. -p 6379:6379 挂载6379端口
  4. --name 指定容器名称
  5. -v /home/redis/redis.conf:/etc/redis/redis.conf 挂载配置文件
  6. -d 以守护进程启动
  7. redis-server /etc/redis/redis.conf 指定配置文件启动redis
  8. --appendonly yes 开启AOF模式
  9. --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

角色分类

  1. none:普通的生产者和消费者,无法登录控制台
  2. management:普通管理者
    1. 无法看到节点信息
    2. 无法对policies进行管理
    3. 可登录控制台
    4. 可查看自己通过AMQP登入的virtual hosts
    5. 可查看自己virtual hosts中的queues,exchanges和bindings
    6. 可查看和关闭自己的channels和connections
    7. 可查看有关自己的virtual hosts的全局统计信息
  3. policymaker:策略制定者,除了拥有management的权限外,还可查看、创建和删除自己的virtual hosts所属的policies和parameters
  4. monitoring:监控者,除了拥有management的权限外,还包括
    1. 列出所有virtual hosts,包括他们不能登录的virtual hosts
    2. 查看其他用户的connections和channels
    3. 查看节点级别的数据如clustering和memory使用情况
    4. 查看真正的关于所有virtual hosts的全局的统计信息
    5. 同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  5. administrator:超级管理员,除了拥有policymaker和monitoring的权限外,还包括
    1. 创建和删除virtual hosts
    2. 查看、创建和删除users
    3. 查看创建和删除permissions
    4. 关闭其他用户的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
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值