微服务学习(二)-docker部署与联调

匿名 (未验证) 提交于 2019-12-02 23:36:01

场景:
工程里面使用docker-compose组合了三个容器,但是很多应用场景下我需要在在本地调试应用,也就是工程里面的app应用。这样如何在本地使用eclipse调试自己的应用?

一.docker 环境搭建

(1)docker容器使用相关
1.显示所有容器

lj@lj-ubuntu:~$ sudo docker ps CONTAINER ID        IMAGE                                   COMMAND                  CREATED             STATUS                  PORTS                                      NAMES 0485b2ba726b        dockercomposespringbootmysqlnginx_app   "/usr/local/bin/mvn-…"   13 days ago         Up 17 hours             8080/tcp                                   dockercomposespringbootmysqlnginx_app_1 0779ac98b637        mysql/mysql-server:5.7                  "/entrypoint.sh mysq…"   13 days ago         Up 17 hours (healthy)   0.0.0.0:3306->3306/tcp, 33060/tcp          v-mysql 449424e31087        nginx:1.13                              "nginx -g 'daemon of…"   13 days ago         Up 20 hours             0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   v-nginx 

2.进入容器

docker exec -it v-mysql /bin/bash 

这边注意/bin/bash/bin/sh的区别。他们同为命令行解释器,可能还存在一定的包含关系,但是需要注意相应的容器/bin文件夹下面有没有对应的程序解释器,否则会出现奇怪的问题。如

sudo docker exec -it dockercomposespringbootmysqlnginx_app_1 /bin/bash 

就需要使用/bin/bash,因为该容器对应文件夹下面没有/bin/sh

(3)mvn以及在docker中的使用

首先查看容器下面的maven库,注意linux下面’.'开头的文件都是隐藏的,需要加上-a参数。

root@0485b2ba726b:/# ls -a ./root/ .  ..  .bashrc  .m2  .profile 

二.使用docker部署联调

回到文章开头的场景,怎样在使用docker的情况下部署联调
思路:
使用docker提供的其他应用服务,本地起web应用,即本地跑app应用,使用docker里面的mysql与nginx配置。
由于docker容器与宿主之间的网络默认使用的是bridge模式,网络状态是隔离的,需要使用端口映射,故先要配置端口映射。

本文章描述的工程基于以下博主的博客,感谢大神!
http://www.ityouknow.com/springboot/2018/03/28/dockercompose-springboot-mysql-nginx.html

文章来源: https://blog.csdn.net/L982817732/article/details/82313738
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!