Contain Yourself: An Intro to Docker and Containers by Nicola Kabar and Mano Marks
Indholdsfortegnelse:
- Docker Run-kommando
- Kør containeren i forgrunden
- Kør beholderen i løsrevet tilstand
- Fjern beholderen efter udgangen
- Indstil beholdernavnet
- Publishing Container Ports
- Deling af data (monteringsvolumener)
- Kør containeren interaktivt
- Konklusion
Docker er en platform, der giver dig mulighed for at udvikle, teste og distribuere applikationer som bærbare, selvforsynende containere, der kører praktisk talt overalt.
Kommandoen til
docker run
opretter en container fra et givet billede og starter containeren ved hjælp af en given kommando. Det er en af de første kommandoer, du skal blive fortrolig med, når du begynder at arbejde med Docker., bruger vi det officielle Nginx-billede til at vise forskellige måder at køre en Docker-container på.
Docker Run-kommando
Kommandoen til
docker run
har følgende form:
docker run IMAGE
Navnet på det billede, som containeren skal oprettes fra, er det eneste krævede argument for
docker run
kommandoen. Hvis billedet ikke findes på det lokale system, trækkes det fra registreringsdatabasen.
Hvis der ikke er angivet nogen kommando, udføres den kommando, der er angivet i Dockerfile's
CMD
eller
ENTRYPOINT
instruktioner, når du kører containeren.
Fra version 1.13 er Docker CLI blevet omstruktureret, og alle kommandoer er grupperet under det objekt, de interagerer med.
Da
run
kommandoen interagerer med containere, er det nu en underkommando af
docker container
. Syntaks for den nye kommando er som følger:
docker container run IMAGE
Den gamle syntaks før 1.13 understøttes stadig. Under hætten er
docker run
kommandoen et alias til
docker container run
. Brugere opfordres til at bruge den nye kommandosyntax.
En liste over alle muligheder for
docker container run
kan findes på dokumentationssiden for Docker.
Kør containeren i forgrunden
Når der ikke findes nogen mulighed for
docker run
kommandoen, startes rodprocessen som standard i forgrunden. Dette betyder, at standardinput, output og fejl fra rodprocessen er knyttet til terminalsessionen.
docker container run nginx
Outputet fra nginx-processen vises på din terminal. Da der ikke er nogen forbindelser til webserveren, er terminalen tom.
For at stoppe beholderen skal du afslutte den kørende Nginx-proces ved at trykke på
CTRL+C
Kør beholderen i løsrevet tilstand
For at holde beholderen kørende, når du forlader terminalsessionen, skal du starte den i en adskilt tilstand. Dette svarer til at køre en Linux-proces i baggrunden.
Brug indstillingen
-d
til at starte en løsrevet container:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Den adskilte beholder stopper, når rodprocessen afsluttes.
Du kan liste de kørende containere ved hjælp af kommandoen
docker container ls
.
Hvis du vil vedhæfte din terminal til den afskilte container-rodproces, skal du bruge kommandoen til
docker container attach
.
Fjern beholderen efter udgangen
Når containeren afslutter, fortsætter dens filsystem som standard på værtssystemet.
--rm
fortæller, at
docker run
kommandoen skal fjerne beholderen, når den afslutter automatisk:
docker container run --rm nginx
Nginx-billedet er muligvis ikke det bedste eksempel på at rydde op i containers filsystem, når containeren er afsluttet. Denne indstilling bruges normalt på forgrundscontainere, der udfører kortvarige opgaver, såsom tests eller databasesikkerhedskopiering.
Indstil beholdernavnet
I Docker identificeres hver container med dens
UUID
og navn. Som standard, hvis ikke eksplicit indstillet, genereres beholderens navn automatisk af Docker-dæmonen.
Brug indstillingen - navn til at tildele et brugerdefineret navn til beholderen:
docker container run -d --name my_nginx nginx
Beholdernavnet skal være unikt. Hvis du prøver at starte en anden container med samme navn, får du en fejl, der ligner denne:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Kør
docker container ls -a
at liste alle containere og se deres navne:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
De meningsfulde navne er nyttige til at henvise til containeren i et Docker-netværk eller når du kører docker CLI-kommandoer.
Publishing Container Ports
Hvis der ikke offentliggøres nogen porte, er processen, der kører i containeren, kun tilgængelig inde fra containeren.
At offentliggøre porte betyder at kortlægge containerporte til værtsmaskinens porte, så portene er tilgængelige for tjenester uden for Docker.
For at offentliggøre en port skal du bruge
-p
indstillingerne som følger:
-p host_ip:host_port:container_port/protocol
- Hvis der ikke er angivet nogen
host_ip
er den standard til0.0.0.0
Hvis der ikke er angivet nogenprotocol
er den standard til TCP. For at offentliggøre flere porte skal du bruge flere-p
indstillinger.
Hvis du vil kortlægge TCP-port 80 (nginx) i containeren til port 8080 på værten localhost-interface, kører du:
docker container run --name web_server -d -p 8080:80 nginx
Du kan kontrollere, at porten er offentliggjort ved at åbne
http://localhost:8080
i din browser eller køre følgende
curl
kommando på Docker-værten:
curl -I
Outputet ser sådan ud:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Deling af data (monteringsvolumener)
Når en container stoppes, fjernes alle data, der genereres af containeren. Docker-volumener er den foretrukne måde at få dataene til at fortsætte og dele dem på tværs af flere containere.
Hvis du vil oprette og administrere volumener, skal du bruge
-p
indstillingerne som følger:
-v host_src:container_dest:options
-
host_src
kan være en absolut sti til en fil eller bibliotek på værten eller en navngivet lydstyrke.container_dest
er en absolut sti til en fil eller bibliotek på containeren.rw
kan værerw
(læse-skriv) ogro
(skrivebeskyttet)). Hvis der ikke er angivet nogen mulighed, er det standard forrw
.
For at forklare, hvordan dette fungerer, lad os oprette et bibliotek på værten og lægge en
index.html
fil i den:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Monter derefter det offentlige_html-bibliotek i
/usr/share/nginx/html
i beholderen:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
I stedet for at specificere den absolutte sti til mappen
public_html
, bruger vi kommandoen
$(pwd)
, der udskriver det aktuelle arbejdsmappe.
Hvis du nu skriver
http://localhost:8080
i din browser, skal du se indholdet af filen
index.html
. Du kan også bruge
curl
:
curl
Kør containeren interaktivt
Når du håndterer de interaktive processer som
bash
, skal du bruge indstillingerne
-i
og
-t
til at starte containeren.
Valgmulighederne-det fortæller Docker at holde standardindgangen knyttet til terminalen og tildele en pseudotype:
docker container run -it nginx /bin/bash
Containerens Bash-shell vil være knyttet til terminalen, og kommandoprompten ændres:
root@1da70f1937f5:/#
Nu kan du interagere med containerskallen og køre enhver kommando inde i den.
I dette eksempel leverede vi en kommando (
/bin/bash
) som et argument til
docker run
kommandoen, der blev udført i stedet for den, der er angivet i Dockerfile.
Konklusion
Docker er standarden til emballering og implementering af applikationer og en væsentlig komponent i CI / CD, automatisering og DevOps.
Kommandoen til
docker container run
bruges til at oprette og køre Docker-containere.
Ville det ikke være dejligt, hvis din bil kunne betjene sig selv? Det er rigtigt at køre op til et hotel eller en restaurant, komme ud af din bil og trykke på en knap. Din bil vil rulle sine vinduer og køre for at finde en tilgængelig parkeringsplads og parkere sig selv. Så da du havde brug for din bil igen, kunne du bare trykke på en anden knap, og det ville forlade parkeringspladsen og køre til hvor du er.

Bilproducenter arbejder allerede på denne type mindre intensiv automatiseret kørsel. Audi's proof-of-concept-bil er ikke helt Googles selvkørende køretøj. Der er ingen LIDAR-laser på taget, og den kan ikke køre hundredtusindvis af miles uden menneskelig interaktion (endnu). Men denne bil kan køre sig ind i en parkeringsplads, parkere sig selv og køre tilbage for at møde dig med trykket på en smartphone-knap.
Curl-kommando i linux med eksempler

Curl er et kommandolinjeværktøj til overførsel af data fra eller til en server designet til at arbejde uden brugerinteraktion. I denne tutorial vil vi vise dig, hvordan du bruger krølleværktøjet gennem praktiske eksempler og detaljerede forklaringer på de mest almindelige krølleindstillinger.
Linux skåret kommando med eksempler

Cut er et kommandolinjeværktøj, der giver dig mulighed for at klippe dele af linjer fra specificerede filer eller rørdata og udskrive resultatet til standardoutput. I denne tutorial vil vi vise dig, hvordan du bruger Linux-klip-kommandoen gennem praktiske eksempler og detaljerede forklaringer af de mest almindelige klippemuligheder.