# 185. 商品详情页动态渲染系统:所有服务最终修改以及 jenkins+docker 部署
本章不部署所有的了,前面使用 jenkins + docker 部署了一个服务, 其他的服务也是类似的构建步骤,只是需要把其中的各种数据库等都写生产环境的 ip 地址,就可以了。
本次要实现这些部署,可能要耗费大量的时间,就不实践了
查看某个容器运行的日志:
# 查看 docker 容器应用日志 logs
语法:docker logs -f -t --tail 行数 容器名
比如:docker logs --tail="100" eshop-eureka-server
获取容器运行后 100 行的文件内容(文件末尾)
# 查看 docker 容器应用日志 inspect
通过查看某个镜像 CONTAINER ID 的详细信息
[root@localhost eshop-eureka-server]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
45f7ac13c9c5 192.168.99.20:2375/eshop-detail/eshop-eureka-server:1.0.0 "java -Djava.securit…" 34 minutes ago Up 34 minutes 0.0.0.0:8761->8761/tcp eshop-eureka-server
27783f1b4c9f hello-world "/hello" 3 days ago Exited (0) 3 days ago stupefied_matsumoto
[root@localhost eshop-eureka-server]# docker inspect 45f7ac13c9c5
1
2
3
4
5
2
3
4
5
在详细信息中找到 LogPath : "LogPath": "/var/lib/docker/containers/45f7ac13c9c5d963489f9de09262258950a7b3dcf5a4b91d3eadbefae890c7fc/45f7ac13c9c5d963489f9de09262258950a7b3dcf5a4b91d3eadbefae890c7fc-json.log",
,这个路径则是宿主机上的物理文件路径,里面就是存放的日志,可以直接查看,比如
[root@localhost eshop-eureka-server]# tail -f /var/lib/docker/containers/45f7ac13c9c5d963489f9de09262258950a7b3dcf5a4b91d3eadbefae890c7fc/45f7ac13c9c5d963489f9de09262258950a7b3dcf5a4b91d3eadbefae890c7fc-json.log
{"log":"2019-09-22 15:44:12.581 INFO 1 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry : Running the evict task with compensationTime 0ms\n","stream":"stdout","time":"2019-09-22T15:44:12.582373481Z"}
{"log":"2019-09-22 15:45:12.581 INFO 1 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry : Running the evict task with compensationTime 0ms\n","stream":"stdout","time":"2019-09-22T15:45:12.582319173Z"}
{"log":"2019-09-22 15:46:12.581 INFO 1 --- [a-EvictionTimer] c.n.e.registry.AbstractInstanceRegistry : Running the evict task with compensationTime 0ms\n","stream":"stdout","time":"2019-09-22T15:46:12.581907101Z"}
1
2
3
4
5
2
3
4
5
# docker 运行后的 host name 问题
需要添加 --network="host"
,参数,host 网络模式,所有容器端口都对应属主机端口,不存在映射关系。
docker run -d -p 8767:8767 --network="host" --name ${PROJECT_NAME} ${REGISTRY_URL}/eshop-detail/${PROJECT_NAME}:${PROJECT_VERSION}
1
下图展示了用 host 与不用 host 注册到 eureka 的区别