# 基础版
# 清除环境
如果做过场景1
的实验, 请清除场景1中运行的网络和容器, 具体参考场景1-清除环境
# 网络
参考场景1中创建网络.
# 构建
order-server:0.0.1-SNAPSHO
参考场景1完成构建
构建
shopping-cart-server
镜像# 进入./demo/shopping-mall目录下 docker build \ -f ./shopping-cart-server/Dockerfile \ -t shopping-cart-server:0.0.1-SNAPSHO \ .
# 启动
启动mysql服务
docker run --name shopping-mall-mariadb \ -p 33060:3306 \ -e MYSQL_ROOT_PASSWORD=x22x22 \ -e MYSQL_USER=shopping-mall-mariadb \ -e MYSQL_PASSWORD=shopping-mall-mariadb \ -e MYSQL_DATABASE=shopping-mall-mariadb \ --net shopping-mall \ --network-alias shopping-mall-mariadb \ -d \ mariadb:10.5.4
启动redis服务
docker run \ --name shopping-mall-redis \ --net shopping-mall \ --network-alias shopping-mall-redis \ -p 36379:6379 \ -d \ redis:6.0.5-buster
启动order-server:0.0.1-SNAPSHOT
docker run -d \ --name order-server \ -p 38080:38080 \ --net shopping-mall \ --network-alias order-server \ -e spring.r2dbc.url=r2dbc:mysql://shopping-mall-mariadb:3306/shopping-mall-mariadb \ order-server:0.0.1-SNAPSHOT
启动shopping-cart-server:0.0.1-SNAPSHOT
docker run -d \ --name shopping-cart-server \ -p 38081:38081 \ --net shopping-mall \ --network-alias shopping-cart-server \ -e spring.redis.host=shopping-mall-redis \ -e spring.redis.port=6379 \ shopping-cart-server:0.0.1-SNAPSHOT
启动nginx
docker run \ --name shopping-mall-nginx \ -d \ --net shopping-mall \ --network-alias shopping-mall-nginx \ --mount type=bind,source="$(pwd)"/nginx/conf.d,target=/etc/nginx/conf.d \ -p 20200:20200 \ nginx:1.19.0
# 验证
获取容器NAT IP
如果使用docker desktop安装的docker, 可以直接使用127.0.0.1进行容器的访问
如果使用docker toolbox安装的docker, 请运行以下命令获得容器的IP
docker-machine env # 回显关键内容 # DOCKER_HOST=tcp://192.168.99.101:2376 # 其中192.168.99.101为容器的访问IP
调用
shopping-mall-nginx
服务接口浏览器中直接打开http://127.0.0.1:20200/ethan/order和http://127.0.0.1:38080/order链接, 可以看到分别返回对应的服务响应报文.
PS: 如果是docker toolbox方式安装的, 请将上面的
127.0.0.1
部分修改为获取容器NAT IP
章节中获取到的IP, 后面需要访问其它容器也是如此, 就不再重复提示.调用结果:
- 通过
shopping-mall-nginx
调用order-server
的接口
- 通过
shopping-mall-nginx
调用shopping-cart-server
的接口
- 通过