一、Docker-compose提示user specified IP address is supported only when connecting to networks with user configured subnets
在网上下载的一些docker-compose.yml在执行的时碰到过多次如下报错:
ERROR: for 5307e2acb....user specified IP address is supported only when connecting to networks with user configured subnets
看意思是只有使用--subnet创建的网络才能指定静态IP,即因为文件中有指定IP运行容器导致报错。涉及的docker-compose.yml一般如下:
root@test: cat docker-compose.ymlservice:...networks:app_net:ipv4_address: 172.16.238.10networks:app_net:driver: bridgeipam:config:- subnet: 172.16.238.0/24gateway: 172.16.238.1
docker-compose.yml文件我也没有修改,直接运行就报的错。但也不是所有的地方运行都报错,偶尔在一台服务器上也成功执行过。通过摸索我发现有以下几个方法可以试试,至少在我都曾解决过问题正常启动了。
第一:删除gateway那行配置
在调整gateway那行时有碰到networks.demo_dev.ipam.config value Additional properties are not allowed (‘gateway‘ was unexpected),最后把这行删了,正常启动了。
第二:执行docker system prune清除一些中间缓存等各种垃圾数据。
墙外有朋友通过这样的方法成功过,Hello, My problem solved but I won't do anything. I was only run "docker system prune" command. Than I was defined static ip. If problem will continue, I will try your advice. Thank you for comment。
第三:修改networks配置
networks配置只保留networks这行和app_net这行,app_net只是一个自定义的名字,可以随便定义。其它的networks配置统统删除,也就是让docker自己自动配置。不用指定。也是完全可行的。
二、Docker容器相关操作技术记录
我服务器上使用的是基于Python3.11的FastAPI框架搭建的 tiangolo/uvicorn-gunicorn-fastapi 镜像,镜像版本是:python3.11-2023-01-02
镜像REPOSITORY: tiangolo/uvicorn-gunicorn-fastapi
镜像tag: python3.11-2023-01-02
1. docker rmi镜像镜像提示:image has dependent child images
docker 使用 docker rmi 镜像ID 删除镜像的时候提示:image has dependent child images ,是因为镜像具有从属子镜像,我很多时候如果镜像内的扩展有更新,我可能会再保存导出一个新的镜像,但实际上这些镜像间都是独立的,完全能删除。
可以试着换个删除的方法。 docker rmi 镜像名称:TAG标签,这样就可以删除了。
2. docker top 容器ID 查看linux进程ID
Docker启动了多个python容器,怎么查看哪些python进程是哪些容器的以及查看某个容器的python的linux进程ID,有很简单的方法,就是直接使用 docker top 容器ID或名称,即可查看此容器的所有进程。