AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1707185
Accepted
Goof'Nat'
Goof'Nat'
Asked: 2022-02-28 02:10:27 +0800 CST2022-02-28 02:10:27 +0800 CST 2022-02-28 02:10:27 +0800 CST

Como fazer o Docker CLI no Windows funcionar com o Minikube na inicialização com o mapeamento de porta baseado em host local adequado?

  • 772

Eu li uma dúzia de artigos sobre como configurar o Docker CLI com o Minikube (ou vice-versa, dependendo de como você o vê) no Windows.

A ideia surgiu enquanto assistia a este vídeo do YouTube: DevOps Toolkit - Free Docker Desktop Alternative For Mac And Windows

O que eu fiz até agora, bem, primeiro configurei os pacotes necessários:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
choco install docker-cli minikube k9s -y
...

Então começou o Minikube:

$ minikube start
?  minikube v1.25.1 on Microsoft Windows 11 Pro 10.0.22000 Build 22000
✨  Automatically selected the hyperv driver
?  Starting control plane node minikube in cluster minikube
?  Creating hyperv VM (CPUs=2, Memory=6000MB, Disk=20000MB) ...
?  Preparing Kubernetes v1.23.1 on Docker 20.10.12 ...
    ▪ kubelet.housekeeping-interval=5m
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
?  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
?  Enabled addons: storage-provisioner, default-storageclass
?  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

e exibiu as variáveis ​​env para usar o daemon Docker do minikube, ou seja, canalizar o docker para o minikube

$ minikube docker-env
$Env:DOCKER_TLS_VERIFY = "1"
$Env:DOCKER_HOST = "tcp://172.22.43.208:2376"
$Env:DOCKER_CERT_PATH = "C:\Users\natalie-perret\.minikube\certs"
$Env:MINIKUBE_ACTIVE_DOCKERD = "minikube"
# To point your shell to minikube's docker-daemon, run:
# & minikube -p minikube docker-env --shell powershell | Invoke-Expression

que eu executei prontamente:

$ & minikube -p minikube docker-env --shell powershell | Invoke-Expression

e pude ver os contêineres kube com a CLI do Docker:

$ docker container ls
CONTAINER ID   IMAGE                           COMMAND                  CREATED          STATUS          PORTS                                                      NAMES
5fffd86809db   6e38f40d628d                    "/storage-provisioner"   41 minutes ago   Up 41 minutes                                                              k8s_storage-provisioner_storage-provisioner_kube-system_ad473bd3-57aa-448d-87d4-26f7786d5321_1
e939d8c637de   a4ca41631cc7                    "/coredns -conf /etc…"   42 minutes ago   Up 42 minutes                                                              k8s_coredns_coredns-64897985d-z9k9m_kube-system_64e26de3-b379-49db-800e-6041f6f5b384_0
1866d17e5126   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_coredns-64897985d-z9k9m_kube-system_64e26de3-b379-49db-800e-6041f6f5b384_0
1e7f8815c7d9   b46c42588d51                    "/usr/local/bin/kube…"   42 minutes ago   Up 42 minutes                                                              k8s_kube-proxy_kube-proxy-qbjd8_kube-system_6a1016cc-7272-404e-8528-582615333943_0
81ea804ae46e   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_kube-proxy-qbjd8_kube-system_6a1016cc-7272-404e-8528-582615333943_0
160dd07d4e57   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_storage-provisioner_kube-system_ad473bd3-57aa-448d-87d4-26f7786d5321_0
37d7f248a31c   71d575efe628                    "kube-scheduler --au…"   42 minutes ago   Up 42 minutes                                                              k8s_kube-scheduler_kube-scheduler-minikube_kube-system_b8bdc344ff0000e961009344b94de59c_0
06b7d0007a1b   25f8c7f3da61                    "etcd --advertise-cl…"   42 minutes ago   Up 42 minutes                                                              k8s_etcd_etcd-minikube_kube-system_a9ff16e4ba59eb7890b7fb3e6b59a60b_0
9aca0a09e443   b6d7abedde39                    "kube-apiserver --ad…"   42 minutes ago   Up 42 minutes                                                              k8s_kube-apiserver_kube-apiserver-minikube_kube-system_86c1ec74f5feb61f5b7f86812aea2e10_0
0898146be8d2   f51846a4fd28                    "kube-controller-man…"   42 minutes ago   Up 42 minutes                                                              k8s_kube-controller-manager_kube-controller-manager-minikube_kube-system_d3f0dbc1c3a23fddbc9f30b9e08c775e_0
c9daa18706bd   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_kube-scheduler-minikube_kube-system_b8bdc344ff0000e961009344b94de59c_0
fe9808d7fc2e   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_kube-controller-manager-minikube_kube-system_d3f0dbc1c3a23fddbc9f30b9e08c775e_0
852aa124d436   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_kube-apiserver-minikube_kube-system_86c1ec74f5feb61f5b7f86812aea2e10_0
bd884e37ea62   k8s.gcr.io/pause:3.6            "/pause"                 42 minutes ago   Up 42 minutes                                                              k8s_POD_etcd-minikube_kube-system_a9ff16e4ba59eb7890b7fb3e6b59a60b_0

Até aí tudo bem, mas será? Bem, há duas coisas com as quais ainda estou muito lutando (e que são indicadas bastante explicitamente no título):

  1. Ainda tenho problema de mapeamento de portas e não consegui descobrir como fazer isso, com base no meu entendimento superficial, o minikube tem seu "próprio endereço IP". Quero dizer, exibir a ajuda do Minikube, mostra entre outras coisas:

    Troubleshooting Commands:
    ssh-key        Retrieve the ssh identity key path of the specified node
    ssh-host       Retrieve the ssh host key of the specified node
    ip             Retrieves the IP address of the specified node
    logs           Returns logs to debug a local Kubernetes cluster
    update-check   Print current and latest version number
    version        Print the version of minikube
    options        Show a list of global command-line options (applies to all commands).
    
    $ minikube ip
    172.22.42.203
    

    No entanto, eu gostaria que o ip do minikube apontasse para o host local, não tenho certeza se isso é factível.

    Um caso de uso simples com nginx:

    $ docker run -it --rm -d -p 8080:80 --name web nginx
    Unable to find image 'nginx:latest' locally
    latest: Pulling from library/nginx
    5eb5b503b376: Pull complete
    1ae07ab881bd: Pull complete
    78091884b7be: Pull complete
    091c283c6a66: Pull complete
    55de5851019b: Pull complete
    b559bad762be: Pull complete
    Digest: sha256:2834dc507516af02784808c5f48b7cbe38b8ed5d0f4837f16e78d00deb7e7767
    Status: Downloaded newer image for nginx:latest
    9f00b9c8ab74436bdf1525c6255cab2aab86fe47163d2ed304c8e65dd98b0b4a
    

    o que inevitavelmente leva a que isso não funcione

    $ [System.Net.WebRequest]::Create('http://127.0.0.1:8080').GetResponse() | % {$_.StatusCode}
    MethodInvocationException: Exception calling "GetResponse" with "0" argument(s): "No connection could be made because the target machine actively refused it. [::ffff:127.0.0.1]:8080(127.0.0.1:8080)"
    

    enquanto esse comando obviamente faz:

    [System.Net.WebRequest]::Create('http://172.22.42.203:8080').GetResponse() | % {$_.StatusCode}
    OK
    
  2. Como & minikube -p minikube docker-env --shell powershell | Invoke-Expressionaplicar na inicialização e para todos os prompts de linha de comando? Se eu não aplicar o comando em todos os prompts do PowerShell, terei:

    error during connect: In the default daemon configuration on Windows, the docker client must be run with elevated privileges to connect.: Get "http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.24/containers/json": open //./pipe/docker_engine: The system cannot find the file specified.
    
windows command-line
  • 1 1 respostas
  • 309 Views

1 respostas

  • Voted
  1. Best Answer
    Daniel B
    2022-02-28T05:21:46+08:002022-02-28T05:21:46+08:00

    a rede localhost é especial. É confiável . Isso também significa que você não pode trazer facilmente portas remotas para localhost . (Uma VM é considerada remota.) Claro que ainda é possível, caso a caso, usando ferramentas de espaço de usuário ou talvez via netsh portproxy . O Minikube não oferece suporte para isso.

    O WSL 2 vem com ligação localhost integrada. Então talvez dê uma chance. A configuração é um pouco complicada, mas depois disso, funciona basicamente da mesma forma que o Minikube aqui. O WSL 2 também é o que o Docker Desktop agora usa para executar o daemon do Docker.

    Não importa o que aconteça, para usar a CLI do Docker no Windows, ela precisa de alguma configuração. Isso é o que minikube -p minikube docker-env --shell powershellimprime. Para executar o código ao iniciar o PowerShell, use profiles . Muito parecido com como eles funcionam com shells do Linux, você coloca o código em um arquivo em um local específico e pronto. Para o seu caso de uso, recomendo colocar o código no perfil “usuário atual, todos os hosts”. Para obter seu caminho, use $PROFILE.CurrentUserAllHostsno PowerShell. Ele difere entre o PowerShell e o PowerShell Core.

    • 1

relate perguntas

  • Qual seria o equivalente em lote do argumento "pass" do Python?

  • Não é possível ativar o Microsoft Print to PDF depois de desativado

  • Comunique-se com o daemon do Docker no Windows

  • atalho do shell da área de trabalho no painel lateral do explorer

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como posso reduzir o consumo do processo `vmmem`?

    • 11 respostas
  • Marko Smith

    Baixar vídeo do Microsoft Stream

    • 4 respostas
  • Marko Smith

    O Google Chrome DevTools falhou ao analisar o SourceMap: chrome-extension

    • 6 respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Martin Hope
    Saaru Lindestøkke Por que os arquivos tar.xz são 15x menores ao usar a biblioteca tar do Python em comparação com o tar do macOS? 2021-03-14 09:37:48 +0800 CST
  • Martin Hope
    CiaranWelsh Como posso reduzir o consumo do processo `vmmem`? 2020-06-10 02:06:58 +0800 CST
  • Martin Hope
    Jim Pesquisa do Windows 10 não está carregando, mostrando janela em branco 2020-02-06 03:28:26 +0800 CST
  • Martin Hope
    v15 Por que uma conexão de Internet gigabit/s via cabo (coaxial) não oferece velocidades simétricas como fibra? 2020-01-25 08:53:31 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve