docker启动spring boot项目

准备环境

本项目运行需要以下环境,自行准备

  1. maven环境
  2. git
  3. docker

步骤

  1. 从git仓库拉取 spring boot集成docker插件的项目。

    git clone https://github.com/1996yarbrough/mysql-spring-boot-todo.git

  2. 生成镜像

    cd mysql-spring-boot-todo  
    mvn clean	package	docker:build
    
  3. 经过等待之后,通过命令
    docker images
    查看是否构建成功。在这里插入图片描述

  4. 镜像构建成功后,该项目需要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是否启动成功。

  5. 启动我们的spring boot项目的容器,需要注意的是,因为需要连接的mysql服务在另一个容器中,需要用link 来指定,这是在同一台主机下的不同容器,在不同主机下处理不同,设计网络连接相关内容,暂时不做考虑。使用下面命令来启动:
    docker run -p 8080:8080 --name todo --link mysql -d zhanyang/todo-demo:1.0.0
    同样,我们使用docker ps todo 来查看容器是否启动成功。

  6. 启动成功后,打开 http://192.168.1.163:8080/ 进入页面,如果打不开,使用curl在本地打开,本地可以打开,则是防火墙问题,关闭防火墙后,再从浏览器打开即可。在这里插入图片描述

  7. 我们也可以进入mysql容器,进行sql查询,命令如下:

   docker exec	-ti mysql bash
   mysql -uuser –ppass
   use	tododb;
   select category,IF(complete,	'true','false')	complete,name from	
   todo_item;

关于容器间连接

对于上面启动容器涉及到的容器间连接的原理,我们做一些探查。

  1. 进入容器
    [root@localhost mysql-spring-boot-todo]# docker exec -it todo /bin/bash

  2. 查看hosts文件
    admin@2e695f4a3d1e:/app$ cat /etc/hosts 在这里插入图片描述我们可以看到多了一天mysql的连接,然后我们就可以通过 ping mysql 来进行网络通信。在这里插入图片描述

  3. 查看环境
    admin@2e695f4a3d1e:/app$ env
    在这里插入图片描述我们可以发现多了很多关于mysql 的环境变量。

这就是为什么能够进行容器间网络通信的原因。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值