当前位置: 首页 » 综合知识 » it知识 » 正文

CentOS8上怎么用Docker部署开源项目Tcloud

发布时间:2023-07-20 以下文章来源于网友投稿,内容仅供参考!

一、安装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 mirrors.aliyun/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成功

二、接下来安装docekerpose

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

sudo curl -l "https://github/dockerpose/releases/download/1.25.0/dockerpose-$(uname -s)-$(uname -m)" -o /usr/local/bin/dockerpose

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

sudo chmod +x /usr/local/bin/dockerpose

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

例如:

sudo ln -s /usr/local/bin/dockerpose /usr/bin/dockerpose

4、检查dockerpose 是否安装成功

docekerpose --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"git config --global core.autocrlf falsegit config --global gui.encoding utf-8

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

ssh-keygen -t rsa -c

4、生成ssh key

cat ~/.ssh/id_rsa.pub

5、登陆github,点击setting>sshand gpg keys>new ssh key 将生成的密钥复制到key中即可

6、测试是否配置成功

ssh -t git@github

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

hi roninlee! you've successfully authenticated, but github does not provide shell access.

四、后端部署

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

git clone https://github/bigbaser/tcloudserver.git

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

dockerpose pull

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

# 这里的账号密码是在dockerpose.yml中配置的,改成以下

sqlalchemy_database_uri = 'mysql://root:tc123456@mysql:3306/demo?charset=utf8'

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

$ sudo dockerpose up -d kong_database

// 容器启动以后,数据库会本地挂载到 ./volumes/kong_database 里面

// 但由于权限问题,初始化数据库会失败,所以要先对该文件赋予权限

$ sudo chmod -r 777 ./volumes/kong_database

$ sudo dockerpose run --rm kong kong migrations bootstrap

5、然后启动所有项目

$ sudo dockerpose up -d

6、查看启动状态

$ sudo dockerpose ps

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

sudo docker logs <name>查看日志

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

9、成功后,进入snapshot页面,点击import from file,选择我们的kong.json文件,并进入details中restore,全选导入,可能会出错,再执行一次即可,此时我们的网关服务已经运行完成,地址为localhost:9000

ps: 数据库初始化文件是init/init.sql,可以通过sudo dockerpose down -v再删除volume/mysql挂载目录之后,sudo dockerpose 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/bigbaser/tcloud.git

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

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

解决办法:

4.1、输入以下命令:

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

4.2、建立软链接:

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

4.3、输入:

5、修改config/dev.env.js与index.js文件中的base_url 地址为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命令

----------------- 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参数重启容器宿主机端口会发生改变

  • • Linux Ecdsa密钥长度选择有何依据

    在Linux

  • • Linux Khook在内核监控中的应用如何

    Linux

  • • Linux Gsoap是否支持异步通信

    GSOAP是

  • • Linux Coremail如何提升用户体验

    提升Linu

  • • Linux Ecdsa算法有哪些局限性

    ECDSA

  • 哎呀音乐钢琴键盘学习《 钢琴主人训练营》 西瓜学琴
    郭蝈 陪练钢琴 30节课时 考级刚需 让孩子每一次练琴都是高质量的
    30天轻松学会五线谱 流行钢琴自学初级教程 牙牙学琴
    流行爵士钢琴实战技巧VIP课 - 继伟 哎呀音乐
    【海上钢琴师】原版 MT1990钢琴谱
    百首经典流行钢琴实战曲集 - 继伟
    雷费尔德电钢琴重锤88键专业考级儿童初学者数码电子钢琴家用
    小练咖 真人钢琴陪练 1v1服务 2999随时退 1课时50分钟 考级刚需
    雅马哈电钢琴88键重锤CLP735智能数码电子钢琴家用专业初学者考级
    【原装进口】Yamaha/雅马哈钢琴 b121 SC2原声静音钢琴
  • 珠海专业调钢琴
  • 天津宝坻区调钢琴
  • 天津静海区钢琴调音
  • 成都简阳市钢琴调律
  • 大连瓦房店市钢琴调音
  • 眉山调钢琴联系方式
  • 惠州大亚湾钢琴调琴师
  • 长治调琴师
  • 厦门湖里区钢琴调音师
  • 上海普陀区钢琴调音师