Docker exec i container som rot

Docker exec i container som rot
Docker er et kraftig containeriseringsverktøy som lar brukere lage isolerte og frittstående applikasjoner. Docker -containere har basisoperativsystemet, applikasjonene og alle nødvendige pakker. I noen tilfeller må vi derfor ha tilgang til systemskallet, utføre kommandoer og utføre tilpassede konfigurasjoner. Heldigvis gir Docker oss funksjonaliteten for å kjøre kommandoer i løpende containere.

Denne opplæringen tar sikte på å vise deg hvordan du jobber med Docker Exec -kommandoen for å utføre kommandoer i å kjøre containere.

Grunnleggende bruk

Det er veldig enkelt å jobbe med Docker Exec. Vi starter med å ringe Docker Exec -kommandoen etterfulgt av containernavnet eller ID og kommandoen for å utføre.

For å kjøre Echo -kommandoen i Container Debian, bruker vi for eksempel kommandoen som:

$ docker exec debian ekko hei

Kommandoen gyter et skall av Debian -beholderen og utfører Echo -kommandoen. Et eksempelutgang vises nedenfor:

For å få navnet eller en ID for de løpende containerne, bruk kommandoen:

$ docker ps

Docker Exec -alternativer

Docker Exec -kommandoen støtter forskjellige alternativer for å endre funksjonaliteten til kommandoene. Den støtter følgende funksjoner.

  • -I - Dette alternativet holder stdin.
  • -t - gyter en pseudo tty
  • -u - spesifiserer brukernavnet eller uid.
  • -W - Arbeidskatalog
  • -P - tildeler utvidede privilegier til kommandoen.
  • -d - kjører i løsrevet modus.
  • -E - Angir miljøvariabler.

Docker Exec Sh

I de fleste tilfeller trenger vi et skallforekomst i beholderen for å utføre rå kommandoer. For å gjøre dette, bruker vi Docker Exec -kommandoen.

$ docker exec debian -i -t /bin /bash

Kommandoen over lanserer et interaktivt skall. Det er bra å sikre at Bash kjørbar eksisterer før kjørekommandoen.

Hvis bash eller noe skall du ønsker å bruke er utilgjengelig, bruk SH i kommandoen nedenfor:

$ docker exec -it /bin /sh

Som du ser har du en interaktiv skalløkt der du kan utføre kommandoer.

Exec som rot

For å utføre kommando som root, bruk alternativet -u. Alternativet krever et brukernavn eller uid av brukeren. For eksempel:

$ docker exec -u 0 Debian Whoami
$ root

I kommandoen ovenfor bruker vi uid av rotbrukeren for å utføre Whoami -kommandoen som root.

For å bruke brukernavnet i stedet for brukeren UID, bruk kommandoen:

$ docker exec -u root debian whoami
$ root

Kommandoen over kan hjelpe når du vil feilsøke eller utføre oppgaver som krever forhøyede privilegier.

Konklusjon

Det er alt for Docker Exec -kommandoen.

Vi har diskutert ved hjelp av Docker Exec for å kjøre kommandoer i løpende containere og gyte en skalløkt. Til slutt dekket vi hvordan du kjører kommandoer som root ved hjelp av brukernavn og uid.