Por padrão, se eu emitir o comando:
sudo docker pull ruby:2.2.1
ele será retirado do site oficial do docker.io por padrão.
Pulling repository docker.io/library/ruby
Como faço para alterá-lo para meu registro particular. Isso significa que se eu emitir
sudo docker pull ruby:2.2.1
ele puxará do meu próprio registro privado, a saída é algo como:
Pulling repository my_private.registry:port/library/ruby
docker
docker-registry
mainframer
fonte
fonte
Respostas:
ATUALIZAÇÃO: após o seu comentário, atualmente não é possível alterar o registro padrão, consulte este problema para obter mais informações.
Você deve conseguir fazer isso, substituindo o host e a porta pelos seus:
Se o servidor for remoto / tiver autenticação, pode ser necessário fazer login no servidor com:
Em seguida, executando:
fonte
docker pull <YOUR-DOMAIN>:8080/test-image
foi ok. Mas o que eu quero édocker pull test-image
, que é sem especificar o DOMAIN e o Port e sem o login.@scopes
no npm para introduzir novos namespaces sem conflito com os existentes. A inclusão do nome do host do registro no nome da imagem dificulta o armazenamento em cache / proxy / bloqueio do registro dentro de uma empresa ou projeto. Isso o descreve bem: informit.com/articles/article.aspx?p=2464012&seqNum=3 #Acontece que isso é realmente possível, mas não usando a versão original do Docker CE ou EE.
Você pode usar o fork do docker da Red Hat com o sinalizador '--add-registry' ou criar o docker a partir da fonte com o registro / config.go modificado para usar seu próprio espaço para nome / índice de registro padrão embutido no código.
fonte
--add-registry
parou de funcionar.--block-registry index.docker.io
opção para se livrar do registro padrão.--add-registry
solicitação de recebimento não foi mesclada . Esse recurso foi recusado ( # 11816 ).se você estiver usando a distro do fedora, poderá alterar o arquivo
Adicionando domínio docker.io
fonte
--add-registry
. O recurso não será adotado pelo Docker na solicitação pull não foi mesclada . (também recurso foi recusado ( # 11816 ).)Parece que não será suportado devido à fragmentação que criaria na comunidade (ou seja, dois usuários receberiam imagens diferentes
ubuntu:latest
). Você simplesmente precisa adicionar o host na frente do nome da imagem. Veja esta edição do github para participar da discussão.(Observe que isso não pretende ser um comentário opinativo, apenas um breve resumo da discussão que pode ser seguida na edição do github mencionada.)
fonte
Tentei adicionar as seguintes opções no /etc/docker/daemon.json. (Eu usei o CentOS7)
depois disso, reiniciou o daemon do docker. E está funcionando sem o docker.io. Espero que alguém seja útil.
fonte
--add-registry
solicitação de recebimento não foi mesclada .A posição oficial do Docker é explicada na edição # 11815 :
A Red Hat teve uma implementação específica que permitiu (veja a resposta, mas foi recusada pelo projeto upstream do Docker). Ele se baseou em
--add-registry
argumentos, que foram definidos no/etc/containers/registries.conf
RHEL / CentOS 7.fonte
Anteriormente, isso era possível usando
DOCKER_OPTS
o/etc/default/docker
arquivo de configuração que funcionava no Ubuntu 14:04 e tinha alguns problemas no Ubuntu 15:04. Não tenho certeza se isso foi corrigido.A linha abaixo precisa ir para o arquivo
/etc/default/docker
no host que executa o daemon do docker. Os pontos de alteração no registro privado estão instalados na sua rede local. Nota: você precisaria reiniciar o serviço docker seguido por essa alteração.fonte
Estou adicionando a resposta original dada por Guy, que ainda é válida hoje (em breve em 2020).
Substituir o registro do docker padrão, como você faria com
maven
, na verdade não é uma boa prática.Ao usar
maven
, você puxa artefatos do Maven Central Repository através do sistema de gerenciamento de repositório local que atuará como um proxy. Esses artefatos são bibliotecas simples e brutas (jars) e é bastante improvável que você empurre jars com o mesmo nome.Por outro lado, as imagens do Docker são ambientes totalmente operacionais, executáveis e fazem total sentido extrair uma imagem do Docker Hub, modificá-la e enviar essa imagem no sistema de gerenciamento de registro local com o mesmo nome, porque é exatamente como o nome diz, apenas no contexto da sua empresa. Nesse caso, a única distinção entre as duas imagens seria precisamente o seu caminho !!
Portanto, a necessidade de definir a seguinte regra: o prefixo de uma imagem indica sua origem; por padrão, se uma imagem não tiver um prefixo, ela será extraída do Docker Hub.
fonte
Não tentei, mas talvez seqüestro do processo de resolução de DNS, adicionando uma linha no
/etc/hosts
parahub.docker.com
ou algo semelhante (docker.io
?) Poderia trabalhar?fonte