Где работает реестр - PullRequest
       15

Где работает реестр

0 голосов
/ 29 августа 2018

Я могу создать контейнер с реестром: docker run -d -p 5000: 5000 --restart = всегда - имя реестра реестра: 2

Но у докера есть реестр по умолчанию, я вижу, что реестр находится на Registry: https://index.docker.io/v1/, и он должен быть локальным, но где он - вы знаете?

Правильно, что если вы используете браузер и перейдете по адресу: https://index.docker.io/v1/, вы попадете в центр докера: https://index.docker.io/v1/

Но все мои локальные образы локальны на моей машине, поэтому там должны быть некоторые, где работает реестр.

Вы можете увидеть реестр, если вы делаете:

docker system info
Containers: 32
 Running: 29
 Paused: 0
 Stopped: 3
Images: 205
Server Version: 18.06.0-ce
Storage Driver: overlay2
 Backing Filesystem: extfs
 Supports d_type: true
 Native Overlay Diff: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
 Volume: local
 Network: bridge host ipvlan macvlan null overlay
 Log: awslogs fluentd gcplogs gelf journald json-file logentries splunk syslog
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Init Binary: docker-init
containerd version: d64c661f1d51c48782c9cec8fda7604785f93587
runc version: 69663f0bd4b60df09991c08812a60108003fa340
init version: fec3683
Security Options:
 seccomp
  Profile: default
Kernel Version: 4.9.93-linuxkit-aufs
Operating System: Docker for Mac
OSType: linux
Architecture: x86_64
CPUs: 2
Total Memory: 2.934GiB
Name: linuxkit-025000000001
ID: Q6IO:V5CP:OHJL:4KJP:ZG2X:GV5W:YHMM:2WCK:4V4O:O6T3:A4E4:BJHM
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): true
 File Descriptors: 206
 Goroutines: 223
 System Time: 2018-08-29T11:56:34.8224409Z
 EventsListeners: 2
HTTP Proxy: gateway.docker.internal:3128
HTTPS Proxy: gateway.docker.internal:3129
Registry: https://index.docker.io/v1/
Labels:
Experimental: true
Insecure Registries:
 127.0.0.0/8
Live Restore Enabled: false

Ответы [ 2 ]

0 голосов
/ 30 августа 2018

Docker имеет два способа хранения изображений:

  • удаленный реестр (по умолчанию docker.io, другие частные как настраивается вручную)
  • локальный диск (/ var / lib / docker / image по умолчанию, может быть настроен с флагом -g)

Демон Docker использует имя изображения (т. Е. 10.10.100.30:80/public/ubuntu:18.04) для анализа, чтобы выяснить, в каком реестре и хранилище он должен искать.
Но демон docker проверит, существует ли образ на локальном диске, прежде чем выполнить его удаленный поиск в реестре. Эта часть может быть самой путаницей, которую вы страдаете.
Пожалуйста, прочитайте больше информации ниже.

Реестр по умолчанию: docker.io

Как говорили люди, это не может быть перезаписано конфигурацией. Может быть, из соображений безопасности или нет.

Определяемый пользователем личный реестр

Я вполне уверен, что мы могли бы определить наш собственный личный реестр для образов докеров. После развертывания реестра, который должен быть легко доступен, все, что нам нужно сделать, это настроить файл /etc/docker/daemon.json (создать его, если он не существует) с {“insecure-registries”: [“10.10.100.30:80”]}.

Конечно, мы должны перезапустить демон docker после настройки. Выполнить systemctl restart docker. Если у вас есть имя пользователя / пароль, установленные в этом реестре, вы должны выполнить вход в систему. Выполните docker login 10.10.100.30:80, затем введите имя пользователя и пароль. Вы можете увидеть сообщение об успешном входе в систему, если не было ошибок.
Теперь попробуйте ввести docker info, вы можете увидеть сообщение, как показано ниже:

Insecure Registries:
10.10.100.30:80
127.0.0.0/8

Наконец, вы можете выдвигать / извлекать изображения с частным префиксом реестра, т.е. 10.10.100.30:80/public/ubuntu:18.04.

Локальное дисковое хранилище

Здесь находится выход docker images.

Есть две перспективы, чтобы понять, как изображения хранятся на локальном диске:

  1. От человека / файловой системы в ОС, то есть файл и каталог (только мой мнение)

    Каталог по умолчанию /var/lib/docker/image/<Storage Driver> ( отображается с драйвером хранилища на выходе docker info). Следующий, есть несколько каталогов (distribution / imagedb / layerdb) и файл с именем repositories.json. Это должно быть самым важным файл в операции docker images.

  2. От демона докера

    Несколько слоев состояли из изображения. Когда мы выполняем docker build с Dockerfile, каждый исполнитель приведет к созданию слоя по демону докера. И один и тот же слой может быть разделен между изображениями. Итак, демон Docker поддерживает базу данных на основе графов для управления отношения между этими слоями изображения - родители / дети / нижний / верхний ...

Каждый раз, когда вы выполняете команду docker, включающую образ (ы) docker, демон docker сначала проверяет свою собственную базу данных на основе графов. Если файл не найден, выполните docker pull автоматически и сохраните информацию об изображении в базе данных для ускорения будущих операций.

Так как я все еще новичок в Docker, я думаю, вы можете посмотреть Документы на docker.com. Это довольно подробно.

Пусть это поможет ~

0 голосов
/ 29 августа 2018

Это реестр по умолчанию, который является dockerhub:

https://hub.docker.com/

Также см .:

https://github.com/moby/moby/issues/7203

Вы не можете изменить реестр по умолчанию (то есть dockerhub). Что вы можете сделать, это нажать и потянуть, используя ваш реестр в качестве префикса.

Например:

docker push localhost:5000/yourimage

docker pull localhost:5000/yourimage

Согласно моему комментарию ниже - этот реестр работает локально и с

docker ps | grep registry:2

Вы можете видеть, как он работает. Затем вы можете использовать его идентификатор, чтобы получить журналы, в которых вы увидите активность.

Вы также можете использовать API, позвонив по номеру:

curl -X GET http://localhost:5000/v2/_catalog

В этом списке будут перечислены все изображения, которые вы поместили в локальный реестр.

...