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 / server / Perguntas / 817339
Accepted
WoJ
WoJ
Asked: 2016-11-28 10:10:45 +0800 CST2016-11-28 10:10:45 +0800 CST 2016-11-28 10:10:45 +0800 CST

O que usa uma porta de contêiner docker?

  • 772

Ao configurar meu primeiro dockerambiente, criei uma rede específica:

root@srv /e/docker# docker network inspect docker
[
    {
        "Name": "docker",
        "Id": "7b20560b36032d36ffe6c0ebece6b4408355d207f4e203a2957b0434ee0afdc1",
        "Scope": "local",
        "Driver": "bridge",
        "EnableIPv6": false,
        "IPAM": {
            "Driver": "default",
            "Options": {},
            "Config": [
                {
                    "Subnet": "10.200.0.0/24"
                }
            ]
        },
        "Internal": false,
        "Containers": {},
        "Options": {},
        "Labels": {}
    }
]

Criei um container a partir de uma imagem para esta rede com um IP específico:

root@srv /e/docker# docker create --network docker --ip 10.200.0.2 --hostname dev -p 22:22 --name dev base
807f3892241d314d20837c4c749912097e1f34c62884401acd9a06e201cb5876

Em seguida, iniciei este contêiner e obtive:

root@srv /e/docker# docker start dev
Error response from daemon: driver failed programming external connectivity on endpoint dev (807f3892241d314d20837c4c749912097e1f34c62884401acd9a06e201cb5876): Error starting userland proxy: listen tcp 0.0.0.0:22: bind: address already in use
Error: failed to start containers: dev

Na verdade, ele tem um supervisordinício sshd -Dque, por padrão, se liga a todos os endereços IP disponíveis para esse host . Como seu IP é 10.200.0.2, eu esperava sshdvincular a ele 127.0.0.1e 10.200.0.2. Parece que esta porta é tomada por algo, mas o quê?

O host está em sshdexecução, mas isso não deve importar para o contêiner convidado, certo? (uma vez que vive em seu próprio mundo que conhece apenas os dois IPs acima)?

EDIT após comentários: Ou seja, gostaria sshdde vincular ao IP do container (aquele que vê = 10.200.0.2) e ter essa porta exposta fora do container, no mesmo IP. Ou, em termos práticos, gostaria de poder, a partir do host, ssh [email protected]chegar sshdao container.

networking network-share docker
  • 3 3 respostas
  • 622 Views

3 respostas

  • Voted
  1. Best Answer
    Jacob Evans
    2016-11-28T11:40:47+08:002016-11-28T11:40:47+08:00

    Não publique a porta se quiser se conectar localmente.

    /e/docker# docker create --network docker --ip 10.200.0.2 --hostname dev --name dev base

    Você deseja expor a porta. https://docs.docker.com/engine/reference/builder/

    teste/DockerFile

    FROM base
    EXPOSE 22
    

    docker build -t test -f test/DockerFile test/DockerFile

    • 2
  2. Anton Evangelatov
    2016-11-28T10:25:00+08:002016-11-28T10:25:00+08:00

    Tente alterar o -p publishparâmetro para vincular a um IP específico, por exemplo -p 10.200.0.2:22:22. Por padrão, o docker publica a porta exposta para 0.0.0.0, se bem me lembro. E como você mencionou, você já tem a porta 22 em uso na rede host.

    • 0
  3. Florin Asăvoaie
    2016-11-28T11:32:54+08:002016-11-28T11:32:54+08:00

    Portanto, o -psinalizador publica a porta no host. Basta excluir a tag para usá-la apenas na rede de contêineres.

    • 0

relate perguntas

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

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