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 / unix / Perguntas / 439106
Accepted
Billal Begueradj
Billal Begueradj
Asked: 2018-04-22 03:32:34 +0800 CST2018-04-22 03:32:34 +0800 CST 2018-04-22 03:32:34 +0800 CST

Docker: crie um volume persistente em um diretório específico

  • 772

Preciso criar um volume persistente para o Docker. O volume deve ser nomeado extra-addonse localizado em /mnt/.

Eu executo este comando:

sudo docker volume create /mnt/extra-addons

Recebi esta mensagem de erro:

Error response from daemon: create /mnt/extra-addons: "/mnt/extra-addons" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intended to pass a host directory, use absolute path

Observe que quando simplesmente executo: sudo docker volume create extra-addons, não enfrento esse problema, mas quando inspeciono o volume em questão usando sudo docker inspect extra-addons, vejo que ele está localizado em um local que não desejo:

[
    {
        "CreatedAt": "2018-04-21T14:40:25+03:00",
        "Driver": "local",
        "Labels": {},
        "Mountpoint": "/var/lib/docker/volumes/extra-addons/_data",
        "Name": "extra-addons",
        "Options": {},
        "Scope": "local"
    }
]

Quero dizer, prefiro ver o volume assim:/mnt/extra-addons

Qualquer ideia?

docker
  • 3 3 respostas
  • 64957 Views

3 respostas

  • Voted
  1. Best Answer
    Billal Begueradj
    2018-04-22T05:05:01+08:002018-04-22T05:05:01+08:00

    Achei a solução:

    Eu tive que instalar o plugin local-persist .

    Tive que montar o volume para criar no ponto de montagem da seguinte forma:

     sudo docker volume create -d local-persist -o mountpoint=/mnt/ --name=extra-addons
    

    Confira se recebi o que esperava:

    sudo docker volume inspect extra-addons
    

    Resultado:

    [
        {
            "CreatedAt": "0001-01-01T00:00:00Z",
            "Driver": "local-persist",
            "Labels": {},
            "Mountpoint": "/mnt/",
            "Name": "extra-addons",
            "Options": {
                "mountpoint": "/mnt/"
            },
            "Scope": "local"
        }
    ]
    

    Isso é o que eu estou procurando.

    • 19
  2. Tom Mekken
    2019-01-24T23:22:28+08:002019-01-24T23:22:28+08:00

    Se você não deseja instalar nenhum plug-in em sua janela de encaixe, recomendo criar um link simbólico para seu volume:

    $ docker volume create <myVolume>
    $ docker volume inspect <myVolume> 
    [
        {
            "CreatedAt": "0001-01-01T00:00:00Z",
            "Driver": "local",
            "Labels": {},
            "Mountpoint": "/var/lib/docker/volumes/<myVolume>/_data",
            "Name": "<myVolume>",
            "Options": {},
            "Scope": "local"
        }
    ]
    $ mkdir /mnt/<myVolume>
    # if you already have data in your volume, you should copy it to `/mnt/<myVolume>` now
    $ sudo rm -rf /var/lib/docker/volumes/<myVolume>/_data
    $ sudo ln -s /mnt/<myVolume> /var/lib/docker/volumes/<myVolume>/_data
    

    Agora fique à vontade para usar seu volume como de costume (com todos os seus dados sendo inseridos /mntcomo você deseja)

    • 13
  3. Lex
    2019-07-23T14:53:52+08:002019-07-23T14:53:52+08:00

    Eu não acho que usar o local-persistdriver é o caminho a percorrer. Faz tempo que não é atualizado. Você pode montar um diretório local (host) em um contêiner docker usando o docker mount.

    Executar o seguinte cria um novo contêiner com um diretório montado mapeado para minha área de trabalho.

    mkdir extra-addons
    docker run -it -v /Users/me/Desktop/extra-addons:/mnt/extra-addons busybox /bin/sh
    ls
    

    Agora você pode ver uma mntpasta na raiz do seu contêiner.

    bin dev etc home mnt proc root sys tmp usr var

    Criando um novo arquivo no contêiner

    touch /mnt/extra-addons/test.txt

    Cria um arquivo test.txt na minha máquina host. No caminho especificado. Esta é agora uma pasta compartilhada de leitura/gravação bidirecional. Vários contêineres podem montar a mesma pasta. E persistirá assim que você desligar o(s) seu(s) contêiner(es).

    insira a descrição da imagem aqui

    • 7

relate perguntas

  • incapaz de extrair imagens no kubernetes do registro privado

  • Conectando-se a um host docker!

  • Qual é o propósito da instrução VOLUME em um Dockerfile?

  • Como instalo o docker no RHEL 7 offline?

  • Preciso executar este arquivo de script apenas uma vez?

Sidebar

Stats

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

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk 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