P1.docker镜像无法删除(检索关键词:无法删除)
现象:
删除提示:Error:No such image:xxxxxxx
解决方案:
删除指定目录下对应的id
cd /var/lib/docker/image/overlay2/imagedb/content/sha256
p2.Dockerfile
制作springboot的jar镜像案例
#安装jdk
FROM java:8
#添加著作信息
MAINTAINER xx
#拷贝程序(后面的对应是容器内部的路径)
ADD xxx.jar /home/run/jar/app.jar
#启动程序
CMD java -jar /home/run/jar/app.jar
创建镜像命令:
docker build -f ./Dockerfile -t app .
启动:
docker run -id -p 7011:7011 --name app app
p3.Log
某个容器日志的查找
docker inspect --format='{{.LogPath}}' xxx-admin-01
将容器日志置空
cat >上一步查找到的路径
P4.集群部署策略
环境情况:
- nacos作为集群服务发现中心
- docker网络使用默认的桥接模式
出现的情况:
nacos的服务ip和端口是docker容器内网ip和项目port端口,致使项目一直访问一个服务或者远程调取不到的情况
解决办法
方法一:使用 –network=host
使用 --network=host 主机网络模式, 容器运行时将会使用宿主机的网络信息, 即会拿到宿主机的ip注册到nacos上, 但是win不支持host模式;
这个时候我们无需 -p 80:80指定服务端口运行, 因为 --network=host 模式会使用服务本身启用的端口;
docker run -d --network=host --name app app:latest
方法二:使用 nacos 指定注册 ip
bootstrap.yml配置文件中添加如下配置即可
spring:
cloud:
nacos:
discovery:
ip: xx.xx.xx.xx
port: xxxx
方法三: (个人喜欢用的方法)
java 程序运行时动态传递 ip 和端口号,原理同方法二
bootstrap.yml配置文件中添加如下配置即可
参数:
-Dspring.cloud.nacos.discovery.ip=xx.xx.xx.xx
-Dspring.cloud.nacos.discovery.port=xxxx
示例:
java -jar -Dspring.cloud.nacos.discovery.ip=xx.xx.xx.xx -Dspring.cloud.nacos.discovery.port=xxxx app.jar
方法四:: preferred-networks 选择符合前缀的 IP 作为服务注册 IP
spring:
cloud:
inetutils:
# 选择符合前缀的IP作为服务注册IP, 支持正则表达式
preferred-networks:
- 192.168
Original: https://www.cnblogs.com/wshlblog/p/16688079.html
Author: 逆态度22
Title: docker
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/620051/
转载文章受原作者版权保护。转载请注明原作者出处!