Откуда берутся изображения в docker-compose.yml?

#docker #docker-compose #hyperledger-fabric #docker-image

#docker #docker-compose #hyperledger-fabric #docker-image

Вопрос:

Я не уверен, как именно работают изображения docker в смысле, откуда они берутся. По сути, это вопрос из трех частей.

  1. Так, например, когда вы вводите
 docker run armhf/helloworld
  

и это не доступно локально, оно извлекает изображение.

Теперь он извлекает изображение из Интернета? Или локально означает внутри контейнера, чтобы он извлекался, например, с ПК.

Теперь в файле 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
     ...

  

Нужно ли мне откуда-то загружать их на ПК, чтобы контейнер мог их найти, или это каким-то образом может самостоятельно извлекать их из Интернета? Или это зависит от того, где он запущен, есть ли у него доступ к Интернету и т.д.?

  1. И что это значит, если существует файл yaml, подобный этому (взятый из другого примера для hyperledger на 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
...
  

(из того же примера) Это стоит за $ something, связанным с изображениями docker?

Всего несколько вещей, которые меня смущают, потому что я привык только к Windwos, и я не нашел чего-то, что исчерпывающе отвечало бы на эти, казалось бы, простые базовые вопросы.

Ответ №1:

Изображения были извлечены из Интернета в соответствии с реестром, на который указывает ваш демон 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 
  

Комментарии:

1. ссылка Здесь используется Kubernetes Helm для установки многих вещей, поэтому он может полагаться на них. Я думаю, что сами файлы — это то, что вы получили бы, если бы использовали Kompose для файла docker-compose. (Который преобразует файл в читаемые файлы для Kubernetes, насколько я знаю)

2. отредактировал мой ответ об этом файле конфигурации на ваш второй вопрос