首页 > 其他分享 >docker之旅 10.容器实战-部署tars微服务框架

docker之旅 10.容器实战-部署tars微服务框架

时间:2024-05-01 22:45:17浏览次数:27  
标签:10 -- 宿主机 3000 mysql tars docker

参考地址:

https://doc.tarsyun.com/#/installation/docker.md

https://github.com/TarsCloud/Tars

https://hub.docker.com/r/tarscloud/base-deploy

 https://tarscloud.gitbook.io/tarsdocs/kuang-jia-bu-shu/docker

 

前提:

假设你已经安装好了 docker , docker-compose。

如果还没有安装,可以看我之前的文章:

docker之旅 1.开篇--安装和设置docker

docker之旅 2.在docker里面安装第一个镜像,docker里面卸载镜像

docker之旅 3.安装docker-compose以及让nginx跟随docker启动

docker之旅 4.docker的镜像源地址(Docker Hub 镜像源),以及如何验证地址是否可以使用

docker之旅 6.docker下面安装mysql, 访问mysql

认真看完这几篇文章,按照里面的步骤实践,应该就可以成功安装 docker了。也学会了如何使用docker 安装 nginx,mysql 。


 

 

开始我们的正文:实战部署 tars 微服务框架

1.拉取镜像文件到本地

docker pull nginx 
docker pull mysql:5.6
docker pull tarscloud/framework:v3.0.20
docker pull tarscloud/tars-node:latest

2.配置 docker-compose.yml 文件

比如,在  /home/henry/docker2024 目录下面,创建一个  docker-compose.yml 的文件。

你最好也要进入到    /home/henry/docker2024  目录下面,因为 执行 docker-compose 的时候,需要当前目录有 docker-compose.yml文件(否则执行失败,会报错)

内容如下:

version: "3"
services:
  nginx:
    image: nginx
    restart: always # 总是重启容器
  mysql:
    image: mysql:5.6
    container_name: tars-mysql
    ports:
      - "3307:3306"
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: "123456"
    volumes:
      - ./mysql/data:/var/lib/mysql:rw
      - /etc/localtime:/etc/localtime
    networks:
      internal:
        ipv4_address: 172.25.1.2
  framework:
    image: tarscloud/framework:v3.0.20
    container_name: tars-framework
    ports:
      - "3000:3000"
    restart: always
    networks:
      internal:
        ipv4_address: 172.25.1.3
    environment:
      MYSQL_HOST: "172.25.1.2"
      MYSQL_ROOT_PASSWORD: "123456"
      MYSQL_USER: "root"
      MYSQL_PORT: 3306
      REBUILD: "false"
      INET: eth0
      SLAVE: "false"
    volumes:
      - ./framework/data:/data/tars:rw
      - /etc/localtime:/etc/localtime
    depends_on:
      - mysql
  node:
    image: tarscloud/tars-node:latest
    container_name: tars-node
    restart: always
    networks:
      internal:
        ipv4_address: 172.25.1.5
    volumes:
      - ./node/data:/data/tars:rw
      - /etc/localtime:/etc/localtime
    environment:
      INET: eth0
      WEB_HOST: http://172.25.1.3:3000
    ports:
      - "9000-9010:9000-9010"
    depends_on:
      - framework
networks:
  internal:
    driver: bridge
    ipam:
      config:
        - subnet: 172.25.1.0/16

3.开放本机的若干端口号

开放 3000, 3001, 9000到90010, 3307,3306 这些端口号。

开放端口号脚本,命名为  openPort.sh,给与  755权限( chmod  755 openPort.sh)

脚本内容如下:

#!/bin/bash  

# 检查参数数量  
if [ "$#" -ne 1 ]; then
    echo "Usage: $0 <port_number>"  
    exit 1
fi

# 获取端口号  
PORT=$1

# 检查端口号是否为数字  
if ! [[ "$PORT" =~ ^[0-9]+$ ]]; then
    echo "Error: Port number must be a positive integer."  
    exit 1
fi

# 开放端口  
sudo firewall-cmd --zone=public --add-port=$PORT/tcp --permanent

# 重新加载防火墙配置  
sudo firewall-cmd --reload

# 检查端口是否已开放  
if sudo firewall-cmd --zone=public --query-port=$PORT/tcp; then
    echo "Port $PORT has been opened successfully."  
else
    echo "Failed to open port $PORT."  
    exit 1
fi

4.使用docker-compose 启动我们的容器

进入   /home/henry/docker2024  目录,

执行

docker-compose up -d  --remove-orphans

如果一切顺利,到这里你的tars 微服务框架就部署好了。

5.登录 web页面

5.1 在宿主机里面 使用 chrome 浏览器,访问 

http://172.25.1.3:3000

如果宿主机里面访问的时候页面有问题

其实也可以 在本地(windows环境) 使用chrome 浏览器 访问  宿主机(虚拟机)的地址+3000 端口

例如我的(http://192.168.10.102:3000/), 192.168.10.102 是我的宿主机(虚拟机)的地址

(因为容器做了端口映射,所以可以在windows下面去访问宿主机(虚拟机),然后进一步访问到容器的web页面)

 

第一次访问的时候,要求输入密码。

用户名默认是 admin

在web管理页面,找到 右上角 的 用户中心,再点击【设置】,在配置列表里面开启  ADMIN 功能。

启用后所有用户均为admin级别用户, 一般用于测试环境

 

到这里,如何在 centos7 下面通过 docker 部署 tars微服务就介绍完了。

如果有问题,可以重新再把这里介绍的过一遍。

 


 

1.如果你的mysql 不是 5.6,而且 8.0 ,那么请注意, mysql8 默认开启了 ssl, 以及密码验证使用了 caching_sha2_password, 因此启动 mysql8 时, 需要关闭 ssl 以及默认使用 mysql_native_password 方式。

2.如果你设置 虚拟网络的时候有问题,要检查之前是不是设置过 这个网段的虚拟网络,或者 这个名字的虚拟网络。

通过  

## 删除一个 叫 tars 的虚拟网络(我们的yml里自带了虚拟网络,不需要手动再去创建)
docker network rm tars

3.web页面打不开的问题。

先在宿主机验证能不能访问   http://172.25.1.3:3000 

然后检查 自己端口映射是不是有问题, 是否开启了宿主机的 3000 端口号,各个容器是否正常启动了。

 

最后,祝愿大家都能顺利安装,学习进步。

 

标签:10,--,宿主机,3000,mysql,tars,docker
From: https://www.cnblogs.com/music-liang/p/18169754

相关文章

  • m基于CCSDS标准的LDPC编码器的FPGA实现,包含testbench,码长1024,码率0.5
    1.算法仿真效果vivado2019.2仿真结果如下:   2.算法涉及理论知识概要      LDPC码是一种具有稀疏校验矩阵的线性分组码,由RobertG.Gallager在1962年首次提出。它利用图论中的Tanner图来表示其编解码结构,其中节点分为变量节点和校验节点。变量节点对应于消息比特......
  • P1017 [NOIP2000 提高组] 进制转换 题解
    题目简述给定一个十进制数$n$,将其转换成一个$-R$进制数。题目分析十进制数转负进制,同样可以使用短除取余法,但是会出现余数为负的情况,例如$-11\div-2=5~\cdots\cdots-1$,此时我们可以用如下法方解决此问题:我们设被除数为$a$,除数为$b$,余数为$c$,商为$d$,其中$c<0$......
  • P10218 魔法手杖
    感觉考场上做这题还是挺聪明的答案显然满足二分的性质。考虑枚举答案mid,如果mid满足要求,那么就要满足如下条件:\[\sum_{a_{i}\oplusx<mid}b^{i}<m\]\[\foralli,a_{i}+x>=mid\]因为如果你这个\(a_{i}\)如果不能满足异或,那么肯定就需要加。第一个条件即为:被定向加强的......
  • 末路狂花钱迅雷BT下载[MP4/1.82GB/5.35GB]超级清晰[HD720p/1080p]
    电影《末路狂花钱》是一部由斯蒂文·索德伯格执导的黑色喜剧电影,于20xx年上映。这部电影讲述了一个普通女人在生活的困境中,决定通过偷窃银行来改变自己的生活轨迹的故事。这部影片将观众带入了一个离奇又荒诞的旅程,展现了金钱和欲望对一个人的影响。 影片的主角是......
  • 维和防暴队迅雷BT下载[DH/1.24GB/6.45GB]高清国语[1080P]完整资源下载
    维和防暴队是一部由德国导演赫尔托·赫尔巴赫执导的电影,该片于2001年上映。该片是根据真实事件改编而成,讲述了联合国维和行动中的一支由德国警察组成的特殊部队,在非洲某个冲突地区执行任务的故事。 电影以德国警察克罗格为视角,通过他的眼睛让观众感知到维和行动中......
  • 10个使用NumPy就可以进行的图像处理步骤
    图像处理是一种数学计算。数字图像由称为像素的彩色小点组成。每个像素由红、绿、蓝(RGB)三个独立的颜色组成。每个像素中的主色由每个RGB分量的数值决定。本文将介绍10个使用使用NumPy就可以进行的图像处理步骤,虽然有更强大的图像处理库,但是这些简单的方法可以让我们更加熟练的......
  • 学10
    ......
  • ES Validation Failed: 1: this action would add [1] shards, but this cluster c
    [2024-05-01T08:56:52,606][ERROR][o.e.x.i.IndexLifecycleRunner][tools]policy[ilm-history-ilm-policy]forindex[.ds-ilm-history-5-2024.03.28-000001]failedonstep[{"phase":"hot","action":"rollover","name&qu......
  • 关于在CentOS7的docker容器下启动MySQL5.7.44卡住的问题的解决办法
    最近想在docker中跑一个MySQL5.7版本的服务,而且要基于CentOS,所以着手自己构建镜像。容器的构建参照下面这篇文章基于CentOS7镜像容器的MySQL环境构筑-sxb_sunday-博客园(cnblogs.com)构建完成后,用下面命令启动MySQL服务的时候,启动进程一直卡住没有反应,只能CTRL+C强制停止。......
  • docker部署MySQL并且外部连接
    我用的是腾讯云轻量级服务器记得去防火墙开启对应的端口一般是3306docker安装就不说了dockerpullmysql直接拉取最新的版本 dockerrun-p3306:3306--namemymysql-v$PWD/conf:/etc/mysql/conf.d-v$PWD/logs:/logs-v$PWD/data:/var/lib/mysql-eMYSQL_ROOT_......