docker-compose.yml中的图像从何而来?

时间:2019-03-28 12:33:25

标签: docker docker-compose hyperledger-fabric docker-image

我不确定docker镜像在什么意义上是如何工作的,它们来自何处。这基本上是一个三部分的问题。

  1. 例如,当您键入
docker run armhf/helloworld

并且它在本地不可用,会拉出图像。

现在它是否可以从互联网上提取图像?还是在容器内部局部表示,例如,它是从pc中拉出来的。

现在在这样的Hyperledger docker-compose文件中(取自现有示例)

networks:
  basic:

services:
  ca.example.com:
    image: hyperledger/fabric-ca
    environment:
      - FABRIC_CA_HOME=/etc/hyperledger/fabric-ca-server
      - FABRIC_CA_SERVER_CA_NAME=ca.example.com
     ...

我是否需要从某个地方将其下载到PC上以便容器可以找到它,或者是否可以通过某种方式将其自身从互联网上拉出来?还是取决于它在哪里运行,是否可以访问互联网等?

  1. 如果有这样的yaml文件(来自kubernetes上的超级账本的另一个示例),这意味着什么
image:
  tag: 1.2.0

persistence:
  accessMode: ReadWriteOnce
  size: 1Gi

peer:
  databaseType: CouchDB
  couchdbInstance: cdb-peer1
  mspID: AidTechMSP
...

该示例甚至没有docker-compose文件,但分为不同的组件。它不使用图片吗?

  1. (来自同一示例)
...
image: hyperledger/fabric-orderer:$IMAGE_TAG
...

(来自同一示例)$后面是否与docker映像相关?

有几件事使我感到困惑,因为我只习惯了Windwos,却没有找到能全面回答这些看似简单的基本问题的东西。

1 个答案:

答案 0 :(得分:2)

根据您的docker守护程序指向的注册表从互联网提取了图像:

#docker info|grep "^Registry:"
Registry: https://index.docker.io/v1/

对于第二个问题,我不知道您在哪里举例,如果您可以提供源代码,它将很有用。

评论后编辑第二个答案:

您要提到的第二个问题的Yaml看起来像kubernetes,而不是docker(如果我没记错的话(对kubernetes不太了解))。

对于第三个问题,该变量指的是图像的版本,图像具有可表示具有不同版本的多个容器的标签,例如,您可以在此处查看此信息:

https://hub.docker.com/_/centos?tab=tags

将图像拖入适当的标签后,例如,您应该能够得到:

Centos 6:

 docker pull centos:6

Centos 7:

 docker pull centos:7

Centos 7.6.1810

docker pull centos:7.6.1810