场景:
工程里面使用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