GNU/Linux >> Znalost Linux >  >> Linux

Zviditelnění připojení NFS na hostiteli a čtení a zápis v kontejneru Docker

Jak jste si poznamenali ve své aktualizaci, UID na souborech není mapováno v připojení připojení, takto Linux připojení připojení provádí. Můžete spustit kontejner s jiným UID, ale to povede k tomu, že /etc/passwd uvnitř kontejneru bude mapován na jiného nebo dokonce žádného (ve vašem případě) uživatele. Existují různé možnosti, ale upřednostňuji upravit UID kontejneru pomocí příkazu usermod, který běží uvnitř vstupního bodu pro obrázek pomocí skriptu fix-perms. To je třeba spustit jako root, ale pak můžete použít gosu pro přechod zpět k uživateli při spouštění vašich příkazů. Mluvil jsem o tom ve svých prezentacích na dockerconu.

Všimněte si, že namísto připojení vazby k hostitelskému adresáři NFS můžete také provést připojení svazku přímo na server NFS. Zde je několik příkladů, jak to udělat:

  # create a reusable volume
  $ docker volume create --driver local \
      --opt type=nfs \
      --opt o=nfsvers=4,addr=nfs.example.com,rw \
      --opt device=:/path/to/dir \
      foo

  # or from the docker run command
  $ docker run -it --rm \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # or to create a service
  $ docker service create \
    --mount type=volume,dst=/container/path,volume-driver=local,volume-opt=type=nfs,\"volume-opt=o=nfsvers=4,addr=nfs.example.com\",volume-opt=device=:/host/path \
    foo

  # inside a docker-compose file
  ...
  volumes:
    nfs-data:
      driver: local
      driver_opts:
        type: nfs
        o: nfsvers=4,addr=nfs.example.com,rw
        device: ":/path/to/dir"
  ...

Linux
  1. Ověření platnosti připojení NFS

  2. Jak zjistit typ souboru Img a připojit jej?

  3. Rozdíl mezi CMD a ENTRYPOINT v Docker Images

  1. Předat hostitelský port do kontejneru dockeru

  2. Připojte sdílenou složku SMB/CIFS v rámci kontejneru Docker

  3. Spuštění shellu v kontejneru Docker Alpine

  1. Jak připojit hostitelský adresář do kontejneru Docker

  2. Kde jsou obrázky, kontejnery a svazky Dockeru uloženy v hostitelském systému Linux?

  3. Jaké je PID v hostiteli procesu běžícího uvnitř kontejneru Docker?