• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    CentOS8上用Docker部署开源项目Tcloud的教程

    一、安装Docker

    1、我是虚拟机装的Centos7,linux 3.10 内核,docker官方说至少3.8以上,建议3.10以上(ubuntu下要linux内核3.8以上)

    root账户登录,查看内核版本如下

    uname -a

    2、把yum包更新到最新

    yum update

    (期间要选择确认,输入 y 即可)

    3、安装需要的软件包,yum-util 提供yum-config-manager功能,另外两个是devicemapper驱动依赖的

    yum install -y yum-utils device-mapper-persistent-data lvm2

    4、设置yum源

    yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)
    
    

    5、可以查看所有仓库中所有docker版本,并选择特定版本安装

    yum list docker-ce --showduplicates | sort -r

    6、安装Docker,命令:yum install docker-ce-版本号,我选的是docker-ce-18.03.1.ce,如下

    yum install docker-ce-18.03.1.ce

    (期间要选择确认,输入 y 即可)

    7、启动Docker,命令:systemctl start docker,然后加入开机启动,如下:

    systemctl start docker #启动docker

    systemctl enable docker #设置docker为开机自启[/code][code]sudo docker run --rm hello-world #启动docker中的hello-word

    8、如果看到如图:

    则说明安装doceker成功

    二、接下来安装doceker-compose

    1、运行以下命令下载Docker Compose的当前稳定版本:

    sudo curl -L "https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

    2、将可执行权限应用于二进制文件:

    sudo chmod +x /usr/local/bin/docker-compose

    3、注意:如果命令docker-compose在安装后失败,请检查您的路径。您也可以创建指向/usr/bin或路径中任何其他目录的符号链接。

    例如:

    sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose

    4、检查docker-compose 是否安装成功

    doceker-compose --version

    三、安装与配置Git

    1、在Linux上是有yum安装Git,非常简单,只需要一行命令:

    yum -y install git

    输入:

    git --version

    查看Git是否安装完成以及查看其版本号

    2、配置git:

    git config --global user.name "xxx"git config --global user.email "xxxxx@xx.com"git config --global core.autocrlf falsegit config --global gui.encoding utf-8

    3、执行下面的命令,一直回车,直到结束

    ssh-keygen -t rsa -C xxxxx@xxx.com

    4、生成ssh key

    cat ~/.ssh/id_rsa.pub

    5、登陆GitHub,点击setting>SSHand GPG keys>New SSH Key 将生成的密钥复制到Key中即可

    6、测试是否配置成功

    ssh -T git@github.com

    7、出现这样一段话,即证明配置成功。

    Hi RoninLee! You've successfully authenticated, but GitHub does not provide shell access.

    四、后端部署

    1、运行以下命令拉起源码:

    git clone https://github.com/bigbaser/TcloudServer.git

    2、进入到TcloudServer\deploy目录下,使用以下命令,拉取所有(等待一会,拉取时间较长)

    docker-compose pull

    3、然后修改local_config.py文件,

    # 这里的账号密码是在docker-compose.yml中配置的,改成以下
    
    SQLALCHEMY_DATABASE_URI = 'mysql://root:tc123456@mysql:3306/demo?charset=utf8'

    4、再初始化kong的数据库(如果报错,再执行一次,成功的话会显示Database is up-to-date)

    $ sudo docker-compose up -d kong_database
    
    // 容器启动以后,数据库会本地挂载到 ./volumes/kong_database 里面
    
    // 但由于权限问题,初始化数据库会失败,所以要先对该文件赋予权限
    
    $ sudo chmod -R 777 ./volumes/kong_database
    
    $ sudo docker-compose run --rm kong kong migrations bootstrap

    5、然后启动所有项目

    $ sudo docker-compose up -d

    6、查看启动状态

    $ sudo docker-compose ps

    7、如果所有状态均为up,则运行正常,否则查看日志

    sudo docker logs <name>查看日志

    8、打开konga(kong的管理页面,http://localhost:9001),注册账号并登录,再新建连接,地址为http://kong:8001

    9、成功后,进入SNAPSHOT页面,点击IMPORT FROM FILE,选择我们的kong.json文件,并进入DETAILS中RESTORE,全选导入,可能会出错,再执行一次即可,此时我们的网关服务已经运行完成,地址为http://localhost:9000

    ps: 数据库初始化文件是init/init.sql,可以通过sudo docker-compose down -v再删除volume/mysql挂载目录之后,sudo docker-compose up -d来重新初始化数据库

    五、前端部署

    1、安装node环境

    从CentOS储存库安装Node.js和npm

    可以从标准CentOS存储库中安装Node.js和npm。

    通过运行以下命令列出提供nodejs软件包的模块:

    yum module list nodejs

    要在CentOS系统上安装默认的Node.js软件包,请输入:

    sudo yum module install nodejs

    输入以下命令:

    node --version #检查node 是否安装成功
    npm --version #检查 npm 是否安装成功

    2、使用以下命令拉取前端代码:

    git clone https://github.com/bigbaser/Tcloud.git

    3、在前端项目的根目录下执行:npm install 安装依赖包

    4、安装依赖包如报以下错:

    解决办法:

    4.1、输入以下命令:

    npm install -g cnpm --registry=https://registry.npm.taobao.org

    4.2、建立软链接:

    sudo ln -s {此处为你安装npm的路径}.npm-global/bin/cnpm /usr/local/bin/cnpm

    4.3、输入:

    cnpm --version 检查是否安装成功。

    5、修改config/dev.env.js与index.js文件中的BASE_URL 地址为http://0.0.0.0

    6、运行前端项目:

    npm run dev

    7、在非 localhost 域名下登录不成功,可以打开开发者工具,查看Application下的Cookies是否有JWT_TOKEN_TCLOUD_DEV。

    如果没有,找到前端项目 Tcloud/src/store/modules/login.js,修改第57行,把

    domain: process.env.NODE_ENV === 'development' ? 'localhost' : COOKIE_DOMAIN
    
    修改为:
    
    domain: COOKIE_DOMAIN

    然后修改 config 下的 dev.env.js,把 COOKIE_DOMAIN 改成前端当前访问域名即可。

    六、报错总结:

    一、docker pull 镜像时报错:

    1、

    ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on such host

    2、

    ERROR: Get https://registry-1.docker.io/v2/: dial tcp: lookup registry-1.docker.io on xxx.xxx.xxx.xxx:xxxx: lame referral

    3、

    Error response from daemon: Get https://index.docker.io/v1/search?q=sameersbn&n=25: dial tcp: lookup index.docker.io on 192.168.65.1:53: read udp 192.168.65.2:45190->192.168.65.1:53: i/o timeout
    
    Error response from daemon: Get https://registry-1.docker.io/v2/: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)

    二、分析问题:

    问题1、2这个是因为DNS域名没有解析的原因。

    问题3 网络连接超时,这情况涉及到很多因素。

    三、解决办法:

    问题:1、2:

    vi /etc/resolv.conf 增加一行DNS地址:例如:nameserver 114.114.114.114 (此方法服务器重启之后会失效。参考方法2:vi /etc/sysconfig/network-scripts/ifcfg-ens33打开网卡配置文件,在配置文件中添加:DNS1=”8.8.8.8”,DNS2=”114.114.114.114”)

    保存之后,继续执行拉取镜像的命令,即可!

    问题:3:

    3.1通过dig @114.114.114.114 registry-1.docker.io找到可用IP

    3.2尝试修改/etc/hosts强制docker.io相关的域名解析到其它可用IP

    3.3保存之后重试即可: docker search sameersbn

    附一些常用Docker命令,更多命令详解,请访问:http://www.docker.org.cn/dockerppt/106.html:

    ----------------- docker ps 查看当前正在运行的容器

    ----------------- docker ps -a 查看所有容器的状态

    ----------------- docker start/stop id/name 启动/停止某个容器

    ----------------- docker attach id 进入某个容器(使用exit退出后容器也跟着停止运行)

    ----------------- docker exec -ti id 启动一个伪终端以交互式的方式进入某个容器(使用exit退出后容器不停止运行)

    ----------------- docker images 查看本地镜像

    ----------------- docker rm id/name 删除某个容器

    ----------------- docker rmi id/name 删除某个镜像

    ----------------- docker run --name test -ti ubuntu /bin/bash 复制ubuntu容器并且重命名为test且运行,然后以伪终端交互式方式进入容器,运行bash

    ----------------- docker build -t soar/centos:7.1 . 通过当前目录下的Dockerfile创建一个名为soar/centos:7.1的镜像

    ----------------- docker run -d -p 2222:22 --name testsoar/centos:7.1 以镜像soar/centos:7.1创建名为test的容器,并以后台模式运行,并做端口映射到宿主机2222端口,P参数重启容器宿主机端口会发生改变

    参考:https://github.com/bigbaser/TcloudServer/blob/master/deploy/docs/Docker%E9%83%A8%E7%BD%B2.md

    总结

    以上所述是小编给大家介绍的CentOS8上用Docker部署开源项目Tcloud的教程,希望对大家有所帮助!

    上一篇:Linux系统(CentOS7安装)安装JDK8的教程详解
    下一篇:网站加速之CDN、SCDN、DCDN区别在哪?如何选择?
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    CentOS8上用Docker部署开源项目Tcloud的教程 CentOS8,上用,Docker,部署,开源,