前情提要:
现在团队要开启一个新项目,这是第一次跟大项目,很多基础内容都搞不懂,特地在这记录下来,学过一次了就要牢记在心。
定位问题:
1、已有搭建起基本框架的项目代码
2、项目需要用到这些服务
- consul
- zipkin
- postgres
- redis
3、已有docker-compose.yml配置文件
本地跑项目代码,需要使用到这些服务,而让这些服务不在本地启动,而是在虚拟机上启动跑。
这样可以简化开发场景,因为虚拟机上可以一直跑着,而本地跑只要关机就会停止,还要重启很麻烦。
着手解决:
一、准备工作:在虚拟机的linux系统上放置docker-compose配置文件
创建docker-compose文件夹
各自文件夹中放置各自的docker-compose.yml,这里以consul为例
二、Docker拉取镜像
1、对于每个服务,对应Docker镜像的名字在 Docker Hub 官方网站上可以查到。
Docker Hub 官方网站 :https://hub.docker.com/
以zipkin为例,官方容器名称为 openzipkin/zipkin
其他几个服务,都是原名。zipkin是个特例。
2、拉取zipkin容器镜像,Linux命令如下:
内网:
(xxxxxxx.xxx.xx为公司内部镜像仓库的名称,这里手动打码处理)
docker image pull xxxxxxx.xxx.xx:8000/zipkin:2
docker image pull xxxxxxx.xxx.xx:8000/zipkin:latest
公网:
docker image pull openzipkin/zipkin:2
docker image pull openzipkin/zipkin:latest
3、拉取镜像可能出现的问题
解决方案1:如果内网pull不下来,就从公网pull(从 内网wifi 换 手机4G热点)
解决方案2:如果对应版本pull不下来,就pull最近latest版本
三、执行yml配置文件,跑服务
1、跑Docker容器的命令:
docker-compose -f docker-compose.yml up -d
-d:后台运行容器,不在命令行输出日志
2、查看运行的容器
docker ps : 列出所有在运行的容器信息
四、设置端口转发
参考文章:
https://www.jianshu.com/p/573cf2ea4da9 “为virtualbox配置端口映射”
端口转发规则如下:
五、测试是否可以访问虚拟机接口和服务
打开虚拟机
本机浏览器访问8500端口,看到consul服务的UI界面,表示通过接口转发成功访问了虚拟机上的consul服务。
http://localhost:8500
六、运行程序,可以正常运行。