本文主要介绍在CentOS8上用Docker部署开源项目Tcloud。这篇文章很详细,有一定的参考价值。有需要的朋友可以参考一下。
一、安装Docker1.我在虚拟机上安装了linux3.10内核的Centos7。docker官方说至少要3.8以上,建议3.10以上(ubuntu下linux内核要3.8以上)。
以root帐户登录,并检查内核版本,如下所示
查看内核版本
2.将yum包更新到最新版本
yum更新
(要在此期间选择确认,只需输入Y)
3.安装所需的软件包。yum-util提供yum-config-manager函数,另外两个依赖于devicemapper驱动程序。
yuminstall-yyum-utils设备映射器持久数据lvm2
4.设置yum源
yum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo(阿里仓库)5.您可以查看所有仓库中的所有docker版本,并选择要安装的特定版本。
yumlistdocker-ce-showduplicates|sort-r
6.安装Docker,命令:yum安装docker-ce-版本号。我选择了docker-ce-18.03.1.ce,如下
yuminstalldocker-ce-18.03.1.ce
(要在此期间选择确认,只需输入Y)
7.启动docker,命令:systemctl启动Docker,然后加入boot启动,如下:
系统启动停靠站#启动停靠站
systemctlenabledocker#设置docker为开机自启[/code][code]sudodockerrun--rmhello-world#启动docker中的hello-word8.如果你看到如图所示:
那么doceker安装成功。
二、接下来安装doceker-compose1.运行以下命令下载DockerCompose的当前稳定版本:
sudocurl-L"https://github.com/docker/compose/releases/download/1.25.0/docker-compose-$(uname-s)-$(uname-m)"-o/usr/local/bin/docker-compose2.将可执行权限应用于二进制文件:
sudochmod+x/usr/local/bin/docker-compose
3.注意:如果docker-compose命令在安装后失败,请检查您的路径。您还可以创建指向/usr/bin或路径中任何其他目录的符号链接。
例如:
sudoln-s/usr/local/bin/docker-compose/usr/bin/docker-compose4.检查docker-compose是否安装成功。
讲师-撰写-版本
三、安装与配置Git1.有yum在Linux上安装Git,非常简单,只需要一行命令行:
yum-y安装git
输入:
git版本
检查是否安装了Git及其版本号。
2.配置git:
gitconfig--globaluser.name"xxx"gitconfig--globaluser.email"xxxxx@xx.com"gitconfig--globalcore.autocrlffalsegitconfig--globalgui.encodingutf-83.执行以下命令并按enter键,直到结束。
ssh-keygen-tRSA-Cxxxxx@xxx.com
4.生成ssh密钥
猫~/。ssh/id_rsa.pub
5.登录GitHub,点击设置>;桑德GPG群岛>新的SSH密钥将生成的密钥复制到密钥中。
6.测试配置是否成功。
宋承宪-git@github.com
7.出现这样一段话,证明配置是成功的。
嗨,罗妮莉!您已经成功认证,但是GitHub不提供shell访问。
四、后端部署1.运行以下命令来获取源代码:
git克隆https://github.com/bigbaser/TcloudServer.git
2.进入TcloudServer\deploy目录,使用以下命令拉全部(稍等一会儿,拉需要很长时间)
docker-composepull3.然后修改本地配置文件,
#这里的账号密码是在docker-compose.yml中配置的,改成以下 SQLALCHEMY_DATABASE_URI='mysql://root:tc123456@mysql:3306/demo?charset=utf8'4.再次初始化kong的数据库(如果报告错误,则再次执行,如果成功,则显示数据库是最新的)
$sudodocker-composeup-dkong_database //容器启动以后,数据库会本地挂载到./volumes/kong_database里面 //但由于权限问题,初始化数据库会失败,所以要先对该文件赋予权限 $sudochmod-R777./volumes/kong_database $sudodocker-composerun--rmkongkongmigrationsbootstrap5.然后启动所有项目。
$sudodocker-composeup-d6.检查启动状态。
$sudodocker-composeps7.如果所有状态都是up,则它正常运行;否则,请检查日志。
sudodockerlogs<name>查看日志8.打开konga(kong管理页面,http://localhost:9001),注册账号并登录,然后新建一个连接,地址为http://Kongs:8001。
9.成功后,进入快照页面,点击从文件导入,选择我们的kong.json文件,进入详细恢复。全部选择导入,可能会有错误。再执行一次就行了。此时,我们的网关服务已经运行完毕,它的地址是http://localhost:9000。
Ps:数据库初始化文件是init/init.sql你可以通过sudodocker-composedown-v重新初始化数据库然后删除卷/mysql挂载目录,然后sudodocker-composeup-dd。
五、前端部署1.安装节点环境
从CentOS存储库安装Node.js和npm
您可以从标准CentOS存储库中安装Node.js和npm。
通过运行以下命令列出提供nodejs包的模块:
yummodulelistnodejs要在CentOS系统上安装默认的Node.js软件包,请输入:
sudoyummoduleinstallnodejs输入以下命令:
node--version#检查node是否安装成功 npm--version#检查npm是否安装成功2.使用以下命令提取前端代码:
gitclonehttps://github.com/bigbaser/Tcloud.git3.在前端项目的根目录下执行:npminstall安装依赖包。
4.如果您在安装依赖包时报告了以下错误:
解决方案:
4.1.输入以下命令:
npminstall-gcnpm--registry=https://registry.npm.taobao.org4.2.建立软链接:
sudoln-s{此处为你安装npm的路径}.npm-global/bin/cnpm/usr/local/bin/cnpm4.3.输入:
cnpm--version检查是否安装成功。5.将config/dev.env.js和index.js文件中的BASE_URL地址修改为http://0.0.0.0
6.运行前端项目:
npm运行开发
7.在非本地主机域名下登录不成功。可以打开开发者工具,检查Application下的Cookies是否有JWT_令牌_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改为前端当前访问域名。
六、报错总结:1.docker拉动镜像时报告错误:
1、
ERROR:Gethttps://registry-1.docker.io/v2/:dialtcp:lookupregistry-1.docker.ioonsuchhost2、
ERROR:Gethttps://registry-1.docker.io/v2/:dialtcp:lookupregistry-1.docker.ioonxxx.xxx.xxx.xxx:xxxx:lamereferral3、
Errorresponsefromdaemon:Gethttps://index.docker.io/v1/search?q=sameersbn&n=25:dialtcp:lookupindex.docker.ioon192.168.65.1:53:readudp192.168.65.2:45190->192.168.65.1:53:i/otimeout Errorresponsefromdaemon:Gethttps://registry-1.docker.io/v2/:net/http:requestcanceledwhilewaitingforconnection(Client.Timeoutexceededwhileawaitingheaders)二。分析问题:
问题1,2这是因为DNS域名没有解析。
3问题网络连接超时,这涉及到很多因素。
三。解决方案:
问题:1,2:
Vi/etc/resolv.conf添加一行DNS地址:例如:名称服务器114.114.114.114(服务器重启后此方法无效。方法二:VI/etc/sysconfig/network-scripts/ifCFG-ens33打开网卡配置文件,将dns1="8.8.8.8"和dns2="114.114.114.114"添加到配置文件中)。
保存后继续执行命令拉图,就可以了!
问题3:
3.1通过dig@114.114.114.114registry-1.docker.io查找可用IP
3.2尝试修改/etc/hosts,强制将docker.io相关的域名解析到其他可用的IP。
3.3保存并重试:docker搜索sameersbn
附上一些常用的Docker命令。更多详情,请访问:http://www.docker.org.cn/dockerppt/106.html:.
-DockerPS-检查当前运行的容器。
-DockerPS-A查看所有集装箱的状态
-用于启动/停止集装箱的码头启动/停止id/名称
-DockerAttachID进入容器(退出后容器停止运行)
-DockerExec-tiID启动一个伪终端以交互方式进入一个容器(使用exit后容器不会停止运行)
-Docker图像查看本地图像
-用于删除集装箱的码头工人RMid/名称
-dockerRMIid/name删除镜像
-DockerRun-nametest-tiubuntu/bin/bash复制Ubuntu容器并重命名为test并运行,然后以伪终端交互的方式进入容器并运行bash。
-DockerBuild-tsoar/centos:7.1。在当前目录下通过Dockerfile创建一个名为Soar/CentOS:7.1的镜像。
-DockerRun-D-p2222:22-Nametestsoar/centos:7.1通过镜像Soar/CentOS:7.1创建一个名为Test的容器,并在后台模式下运行,将端口映射到主机的222端口。p参数重新启动容器主机。
参考:https://github.com/bigbaser/tcloudserver/blob/master/deploy/docs/docker%e9%83%A8%E7%BD%B2.MD
摘要
以上是边肖介绍的在CentOS8上用Docker部署开源项目Tcloud的教程。希望对你有帮助!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)