有没有办法检查Docker映像是否具有Dockerfile复制的所有文件,并了解该映像是否按照Dockerfile中的配置构建?我的情况是该映像已成功构建,但是当我尝试运行该映像时,docker抱怨它找不到某个文件或其他文件,并且该容器无法运行,因此我无法对其执行。
进行码头检查无济于事,因为它不报告映像中的文件。有什么办法吗?
我遇到了一个问题,不确定如何解决此问题。我的redis前哨生态系统如下:
3个哨兵集群->使用docker-compose管理1个主节点和2个从节点
我已经为生态系统创建了一个docker overlay网络,并使用docker stack deploy运行docker compose yml。每个节点上的redis-cli显示正确的INFO配置。但是,外部客户端遇到了问题。
当我向客户端应用程序提供哨兵地址(在我的情况下,这是一个Spring Redis应用程序)时,我正在获取主Redis的覆盖网络的内部IP地址。这是客户端无法识别的,并且失败。如何获得可以在外部解析的IP地址?其次,由于docker swarm管理覆盖网络上的IP地址,甚至有可能。这是正确的方法,即使用docker swarm吗?任何反馈将不胜感激。
version: '3'
services:
redis-master:
image: redis:latest
volumes:
- "/docker-service-data/master:/data"
- /redis-docker/redis.conf:/etc/redis.conf
command: redis-server /etc/redis.conf
ports:
- 6379:6379
deploy:
mode: replicated
replicas: 1
placement:
constraints: [node.role == manager]
networks:
- rev_proxy
redis-slave:
image: redis:latest
volumes:
- "/docker-service-data/slave:/data"
- /redis-docker/redis.conf:/etc/redis.conf
command: redis-server /etc/redis.conf --slaveof redis-master 6379
deploy:
mode: replicated
replicas: 2
placement:
constraints: [node.role == worker]
networks:
- rev_proxy
sentinel_1:
image: <private-registry>/redis-sentinel:1
deploy:
mode: replicated
replicas: 3
ports:
- 26379:26379 …Run Code Online (Sandbox Code Playgroud) 作为Photon的新手,我有以下问题:
看起来VMware正在尝试为Docker创建并行容器技术.由于码头工人在这个阶段比较成熟,使用光子是否有任何好处/优势?
据我所知,人们可以在光学的前提下创建类似AWS的环境(由于我可以在新的光子容器上启动新的服务实例 - 裸机与拉动码头图像),因此可以处理端口暴露.
它是否为管理/维护增加了另一层复杂性?Docker可以在主机上的最小linux上运行.那么我有什么收获?看起来这是将服务器划分为更小的VM的更好方法.
对不起,对于漫无边际的问题.我不确定除了AWS之外是否存在增值,就像我可以用它创建的环境一样.甚至,我不确定.谢谢