sudo
, la commande la plus utile de Linux, est parfois absente de plusieurs distributions Linux, notamment les conteneurs Docker et les distributions Linux légères.
sudo
est un utilitaire qui permet aux utilisateurs d'exécuter des commandes avec root
accéder. C'est la commande la plus utile et elle est incluse dans presque toutes les principales distributions Linux. Oui, presque tous. Plusieurs distributions Linux, en particulier les images docker, ne fournissent pas le sudo
paquet par défaut. Si vous voyez l'erreur bash: sudo: command not found
cela signifie simplement que sudo
n'est pas installé.
bash :sudo :commande introuvable
sudo
sera suffisant. Cependant, l'installation d'un nouveau paquet nécessite l'utilisation de root
capacités. sudo
.
Pour Ubuntu ou ses dérivés
$ apt install sudo
Pour Fedora ou ses dérivés
$ dnf install sudo
Pour RHEL ou ses dérivés
$ yum install sudo
Pour Arch Linux ou ses dérivés
$ pacman install sudo
Pour les images Docker
Cependant, s'il n'y a pas de compte root, comme dans le cas de nombreuses images docker, cela peut ne pas être possible. root
utilisateur. Dans ce cas, nous devrons créer une image personnalisée avec sudo
Pre installé. Ne vous inquiétez pas, c'est facile.
Créer une image Docker personnalisée
Un Dockerfile est requis pour construire une image Docker personnalisée. Dockerfile est utilisé pour tout définir dans une certaine syntaxe, et la commande docker build est utilisée pour générer une image à partir de celle-ci.
Créer un fichier Docker
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
Nous avons utilisé l'étiquette RUN dans la troisième partie, qui est marquée par "Installer les outils", et toute commande après RUN sera exécutée avant de générer notre image personnalisée. Ainsi, en tapant une commande ici, nous pouvons installer n'importe quel paquet que nous souhaitons. Si nous continuons à écrire des commandes, nous pouvons même faire tourner un serveur complet.
Pour plus de connaissances sur Dockerfile, reportez-vous à la documentation officielle du docker.
Enregistrez et fermez le Dockerfile. Maintenant, ouvrez la ligne de commande et accédez au répertoire contenant le Dockerfile et exécutez la commande suivante -
sudo docker build -t image-name:tag .
Changez le image-name:tag avec n'importe quel nom et tag que vous souhaitez.
unable to prepare context: context must be a directory: /home/sandy/Dockerfile
. Vous devez donc être dans le répertoire contenant Dockerfile et utiliser . pour spécifier le répertoire courant ou le chemin complet vers le répertoire contenant Dockerfile.
Et c'est tout. docker build
commencera à construire la commande. Cela prendra quelques secondes. Une fois cela fait, notre image docker personnalisée est enregistrée dans notre cache d'image local. Nous pouvons maintenant utiliser la balise image-name:tag pour créer un conteneur Docker dans lequel sudo est préinstallé.