1.业务场景
我们有一个eureka,然后一个product和一个mysql。
这三个都是容器。
product注册到eureka,然后product还要连接mysql。
首先你的product最好能证明连接了数据库,例如写一个查询。
再就是保证在Windows都能运行正常,然后再制作成容器。
2.安装mysql
docker run -p 3306:3306 --name mysql \
-e MYSQL_ROOT_PASSWORD=xxx \
-d mysql:5.7
3.进入mysql容器查看ip信息
进入容器:docker exec -it mysql /bin/bash
如果docker镜像没有ifconfig、ping指令,执行下面的命令:
apt-get update
apt install net-tools # ifconfig
apt install iputils-ping # ping
4.创建eureka容器
我在之前的博客已经讲解了如果利用dockerfile制作一个容器。
所以这里我就直接启动。
制作容器:利用dockerfile制作eureka容器
启动:docker run -d -p 8761:8761 --name=eureka registry-agan/eureka-server:1.0.0
5.部署product镜像和容器
同样是利用dockerfile制作。
这是我的dockerfile:
#1.基础镜像:FROM指令:基础镜像名:tag,例如java:8
FROM java:8
#2.维护者:格式:MAINTAINER <name>
MAINTAINER agan
#3.镜像的操作指令
# ADD拷贝一个文件到容器中,格式:ADD <src> <dest>
ADD e-book-product-docker-core-0.0.1-SNAPSHOT.jar /data/app.jar
#5.配置容器启动后,执行什么命令
ENTRYPOINT ["java","-jar","/data/app.jar"]
构建镜像: docker build -t registry-agan/product-server:1.0.0 .
创建容器:
docker run -d -p 8084:8084 --name product </font>
--link mysql:aganmysql </font>
–link eureka:aganeureka </font>
registry-agan/product-server:1.0.0
link就是容器直接的连接,你不用IP的情况下可以通过link来实现容器名之间的通信;它的语法是 link 容器名:别名
需要注意的是,在你的product中要将这里修改为mysql:
mysql密码也要修改。
6.查看效果
访问:http://192.168.23.139:8761/
访问:http://192.168.23.139:8084/product/findAllProduct
说明product连接和eureka和mysql都实现了网络通信。
感谢观看!
欢迎评论交流!