sudo , nejužitečnější příkaz Linuxu, občas chybí v několika distribucích Linuxu, zejména v kontejnerech dockerů a odlehčených distribucích Linuxu.
sudo je nástroj, který umožňuje uživatelům spouštět příkazy s root přístup. Je to nejužitečnější příkaz a je součástí téměř všech hlavních distribucí Linuxu. Ano, skoro všechny. Několik linuxových distribucí, zejména obrázky dockerů, nedodává sudo balíček ve výchozím nastavení. Pokud se zobrazí chyba bash: sudo: command not found to jednoduše znamená, že sudo není nainstalován.
bash:sudo:příkaz nenalezen
sudo bude stačit. Instalace nového balíčku však vyžaduje použití root schopnosti. sudo .
Pro Ubuntu nebo jeho deriváty
$ apt install sudo Pro Fedoru nebo její deriváty
$ dnf install sudo Pro RHEL nebo jeho deriváty
$ yum install sudo Pro Arch Linux nebo jeho deriváty
$ pacman install sudo Pro obrázky Docker
Pokud však neexistuje účet root, jako v případě mnoha obrazů dockeru, nemusí to být možné. root uživatel. V takovém případě budeme muset vytvořit vlastní obrázek pomocí sudo předinstalovaný. Nebojte se, je to snadné.
Vytvořit vlastní obrázek Docker
K vytvoření vlastního obrazu dockeru je vyžadován Dockerfile. Dockerfile se používá k definování všeho v určité syntaxi a příkaz docker build se používá k vygenerování obrázku z něj.
Vytvořit Dockerfile
touch Dockerfile
nano Dockerfile or gedit Dockerfile # This is the base image we will use to create our custom docker image
FROM ubuntu:latest
#
# the maintainer of an image
LABEL maintainer="[email protected]"
#
# Install the tools (sudo)
RUN apt-get update && apt-get upgrade -y && apt install sudo tasksel -y Ve třetí části jsme použili štítek RUN, který je označen „Install the tools“ a jakýkoli příkaz po RUN bude proveden před vygenerováním našeho vlastního obrázku. Takže zadáním příkazu zde můžeme nainstalovat libovolný balíček, který si přejeme. Pokud budeme pokračovat v psaní příkazů, můžeme dokonce roztočit celý server.
Další informace o Dockerfile naleznete v oficiální dokumentaci dockeru.
Uložte a zavřete Dockerfile. Nyní otevřete příkazový řádek a přejděte do adresáře obsahujícího Dockerfile a spusťte následující příkaz –
sudo docker build -t image-name:tag . Změňte image-name:tag s libovolným jménem a jmenovkou, kterou si přejete.
unable to prepare context: context must be a directory: /home/sandy/Dockerfile . Takže musíte být v adresáři obsahujícím Dockerfile a použít . k zadání aktuálního adresáře nebo úplné cesty k adresáři obsahujícímu Dockerfile.
A to je vše. docker build začne sestavovat příkaz. Bude to trvat několik sekund. Po dokončení se náš vlastní obrázek dockeru uloží do místní mezipaměti obrázků. Nyní můžeme použít image-name:tag k vytvoření kontejneru dockeru, který má předinstalované sudo.