准备环境
本项目运行需要以下环境,自行准备
- maven环境
- git
- docker
步骤
-
从git仓库拉取 spring boot集成docker插件的项目。
git clone https://github.com/1996yarbrough/mysql-spring-boot-todo.git -
生成镜像
cd mysql-spring-boot-todo mvn clean package docker:build -
经过等待之后,通过命令
docker images
查看是否构建成功。
-
镜像构建成功后,该项目需要mysql,所以我们需要启动一个mysql容器,可在 docker hub上直接pull,并制定用户名、密码,如下命令:
docker run --name mysql -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=tododb -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -d mysql:5.6
可以通过docker logs mysql查看容器启动日志,docker ps来查看mysql是否启动成功。 -
启动我们的spring boot项目的容器,需要注意的是,因为需要连接的mysql服务在另一个容器中,需要用
link来指定,这是在同一台主机下的不同容器,在不同主机下处理不同,设计网络连接相关内容,暂时不做考虑。使用下面命令来启动:
docker run -p 8080:8080 --name todo --link mysql -d zhanyang/todo-demo:1.0.0
同样,我们使用docker ps todo来查看容器是否启动成功。 -
启动成功后,打开
http://192.168.1.163:8080/进入页面,如果打不开,使用curl在本地打开,本地可以打开,则是防火墙问题,关闭防火墙后,再从浏览器打开即可。
-
我们也可以进入mysql容器,进行sql查询,命令如下:
docker exec -ti mysql bash
mysql -uuser –ppass
use tododb;
select category,IF(complete, 'true','false') complete,name from
todo_item;
关于容器间连接
对于上面启动容器涉及到的容器间连接的原理,我们做一些探查。
-
进入容器
[root@localhost mysql-spring-boot-todo]# docker exec -it todo /bin/bash -
查看hosts文件
admin@2e695f4a3d1e:/app$ cat /etc/hosts
我们可以看到多了一天mysql的连接,然后我们就可以通过 ping mysql来进行网络通信。
-
查看环境
admin@2e695f4a3d1e:/app$ env
我们可以发现多了很多关于mysql 的环境变量。
这就是为什么能够进行容器间网络通信的原因。
本文详细介绍如何使用Git、Maven及Docker构建并运行一个SpringBoot项目,包括环境搭建、项目克隆、镜像生成及容器启动过程,同时探讨容器间的网络连接原理。
1022

被折叠的 条评论
为什么被折叠?



