Avatar billede mergelspir Seniormester
17. maj 2023 - 15:54 Der er 8 kommentarer og
1 løsning

Dockerfile FROM?!?

Hvad betyder FROM kommandoen i en Dockerfile helt præcist?
Jeg mener: Hvor kan jeg se, hvorfra den hender tomcat?

Jeg er stødt på følgende eksempler:
FROM tomcat
FROM tomcat:8.0
FROM tomcat:8.0-alpine
FROM tomcat:latest
FROM centos
FROM ubuntu:latest
FROM ubuntu:16.04
FROM debian:latest
Og ja, der tegner sig et mønster, omend ikke særlig gennemskuelig.

Jeg har en debian 11 server og vil gerne hente en tomcat version 8.5.
Hvad er forskellen på, om jeg skriver
FROM debian
eller
FROM tomcat
?
Og hvordan kan jeg verificere om en given version findes?

https://archive.apache.org/dist/tomcat/tomcat-8/
lister en rækker versioner fx v8.5.88
Hvis jeg skriver "FROM tomcat:8.5.88", antager jeg, at det er den version, den henter?
Men hvordan kan jeg vide, at/om den henter fra dette link?
Og hvad nu, hvis jeg skriver "FROM debian"?!?
Hvor henter den så helt præcist tomcat fra?

Eller har jeg helt misforstået formålet med FROM?
Avatar billede puren Ekspert
17. maj 2023 - 17:21 #1
som kristen fra Always Ultra reklame sage prøv det prøv det

slet det igen hvis det var forkert
Avatar billede mergelspir Seniormester
17. maj 2023 - 17:55 #2
ad #1
Fortæl mig venligst, hvor kan jeg se, hvorfra den hender tomcat, ved at prøve det?!?
Avatar billede jakobdo Ekspert
17. maj 2023 - 23:07 #3
Prøv at kig lidt nærmere her: https://hub.docker.com/_/tomcat
Avatar billede mergelspir Seniormester
18. maj 2023 - 11:23 #4
Ad #3)
Ja, den side kender jeg godt, men det er jo kun eet af mange repositories.

Skal jeg forstå det således, at
FROM tomcat
FROM debian
FROM ubuntu
FROM <hvadsomhelst>
*altid* henter fra dette repository?
Avatar billede jakobdo Ekspert
18. maj 2023 - 11:39 #5
Jeg tror ikke jeg forstår spørgsmålet.
Men FROM tomcat, vil hente tomcat image ja.
FROM debian vil hente debian osv...
Og de vil blive hentet fra de repos du har tilgængeligt i dit miljø tænker jeg.
Og hvis du allerede har "nyeste" image lokalt, så vil det ikke blive hentet.
Det er derfor du kan styre version via:

FROM image:latest
FROM image:7.2
osv...
Avatar billede mergelspir Seniormester
18. maj 2023 - 12:48 #6
Ad #5)
"Og de vil blive hentet fra de repos du har tilgængeligt i dit miljø tænker jeg.
Og hvis du allerede har "nyeste" image lokalt, så vil det ikke blive hentet."

Tak, det giver god mening.

Nu har jeg blot lejet mig ind på en ny VPS og jeg aner ikke, om VPS-udbyderen har et docker-repository.

Jeg har for nylig installeret Docker fra hub.docker.com på serveren.
Jeg antager, at der følger et initielt image med.

Men jeg kan næppe forestille mig, at der er Tomcat på det image.
Så, hvilken betydning har det så, hvis jeg skriver "FROM tomcat:8.5"?

Tilgiv mig min uvidenhed, men jeg har søgt rigtig mange steder og ikke kunnet finde noget konkret/præcist svar.

Jeg synes, at der er en tendens til, at virker det, så er alt ok, og så skal man ikke tænke mere over det. Men det er altså ikke lige mig.
Avatar billede jakobdo Ekspert
18. maj 2023 - 13:19 #7
Jeg er bestemt heller ikke ekspert på området, så beklager hvis jeg siger noget sludder. :D

Jeg fandt denne: https://docs.docker.com/engine/reference/commandline/pull/#pull-from-a-different-registry

Måske det kan give dig lidt mere viden / info.
Avatar billede jakobdo Ekspert
18. maj 2023 - 13:22 #8
Og lige en kommentar til #6.
Du skriver:
"Jeg har for nylig installeret Docker fra hub.docker.com på serveren.
Jeg antager, at der følger et initielt image med."

Der tror jeg du tager fejl.
Du skal se DOCKER client som en "client" der henter alt den skal bruge, fra nettet eller hvis du angiver et andet repository.
Så selve DOCKER installationen på din maskine/server etc... Indeholder kun funktionalitet til at få dig startet.
Så hvis du laver: "docker pull debian"

Så vil den straks gå igang med at hente debian image fra docker repository.
Kalder du så denne kommando igen, vil den bruge debian fra din lokale cache.
Avatar billede intel4004 Novice
18. maj 2023 - 13:58 #9
Når du specificerer "FROM debian" i en Dockerfile, går Docker ud fra, at "debian" er navnet på et billede, der skal hentes fra et billedlager, også kendt som et register. Hvis du ikke specificerer et register, bruger Docker som standard Docker Hub, som er det mest almindelige register.

Når Docker læser "FROM debian", prøver den først at finde billedet lokalt på din computer. Hvis det ikke findes, forsøger den at hente det fra Docker Hub.

Det er vigtigt at bemærke, at "debian" i denne kontekst er et billede-tag. Billedtags hjælper med at identificere forskellige versioner af et billede. For eksempel kan du bruge "debian:10" for at hente version 10 af Debian-billedet. Hvis du ikke specificerer et tag, som i "FROM debian", bruger Docker som standard tagget "latest", som repræsenterer den nyeste stabile version af billedet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester



IT-JOB

Staten og Kommunernes Indkøbsservice A/S (SKI)

IT-udvikler

Danske Commodities A/S

IT systems developer

Netcompany A/S

Software Developer

Udviklings- og Forenklingsstyrelsen

Udviklere til Internationalt samarbejde