Docker-säilöt ovat yksi Docker-alustan olennaisista osista, joka pakkaa ohjelman, kokoonpanoasetukset ja riippuvuudet Docker-kuvan avulla. Docker-kuva on yksinkertainen malli tai tilannekuva säilöstä, joka ohjaa säilöä sovelluksen säilömiseen. Nämä kuvat ovat useimmiten saatavilla virallisessa Docker-keskittimen rekisterissä. Käyttäjät voivat myös suunnitella nämä kuvat projektin vaatimusten mukaisesti Dockerfile-sovelluksella.
Tämä blogi selittää:
- Mikä on Dockerfile?
- Dockerfilen peruskomennot
- Kuinka ajaa ilmentymä Docker-tiedostosta Dockerissa?
- Kuinka ajaa ilmentymä Docker-tiedostosta Docker Composessa?
- Johtopäätös
Mikä on Dockerfile?
Dockerfile on tavallinen tekstitiedosto, joka sisältää komentoja ja ohjeita, jotka määrittelevät Docker-säilön perusrakenteen. Nämä ohjeet voidaan suorittaa päätteessä ilman tiedostoa, mutta jokaisen komennon suorittaminen yksitellen on hektinen ja monimutkainen tehtävä. Dockerfilen avulla kehittäjien on helppo määrittää kaikki vaatimukset ja ohjeet yhteen tiedostoon. Tätä tiedostoa käytetään sitten säilömallin rakentamiseen, joka on Docker-kuva. Tämän jälkeen Docker-kuva suoritetaan käynnistämään ilmentymä Docker-säiliössä.
Dockerfilen peruskomennot
Jotkut Dockerfilen peruskomennot, joita käytetään säilön perusvedoksen määrittämiseen, on lueteltu alla taulukkomuodossa:
komennot | Kuvaus |
FROM | ' FROM ” -komentoa käytetään määrittämään säiliömallin peruskuva. Nämä kuvat on otettu virallisesta Docker-rekisteristä Docker Hub. |
YLLÄPITO | ' YLLÄPITO ”-komento määrittää tekijän (nimi ja sähköpostiosoite) tiedot, joka luo Docker-kuvan. |
TYÖOHJ | Se määrittää konttisovelluksen työhakemiston. |
KOPIO | Käytetään kopioimaan lähde- ja määritystiedostot isäntäjärjestelmästä määritettyyn Docker-säilön polkuun. |
LISÄTÄ | ' LISÄTÄ '-komento on samanlainen kuin ' KOPIO ”-komentoa, mutta se tukee myös etä-URL-osoitetta tiedoston lisäämiseksi URL-osoitteesta säilöpolkuun, kuten GitHub-arkistosta säilöpolkuun. |
JUOSTA | ' JUOSTA ' käytetään komentojen suorittamiseen säilössä. Dockerfilessa sitä käytetään enimmäkseen ylimääräisten riippuvuuksien hallintaan ja asentamiseen säilön sisällä. |
CMD | ' CMD ” määrittää Docker-säiliöiden oletuspisteet. Se määrittää pohjimmiltaan '' -tiedoston suoritettavat tiedostot ja oletusparametrit SISÄÄNTULOPISTE ”. |
SISÄÄNTULOPISTE | ' SISÄÄNTULOPISTE ” -komentoa käytetään myös Docker-säilön suoritettavien tiedostojen asettamiseen. Se määrittää periaatteessa oletussovellukset, joita käytetään säilössä joka kerta. ENTRYPOINT-komentoa käytetään myös kerran Docker-tiedostossa. |
KÄYTTÄJÄ | Tällä komennolla asetetaan UID (käyttäjänimi) suorittamaan komennot säilössä |
VOLUME | ' VOLUME ” -komentoa käytetään ulkoisen taltion (tiedostojärjestelmän) sitomiseen tai liittämiseen säilöllä. |
ENV | ' ENV ”-komentoa käytetään säilön ympäristömuuttujien asettamiseen. |
ARG | ' ARG ' käytetään argumenttien välittämiseen säilön sisällä. |
PALJISTA | ' PALJISTA ”-komento määrittää paljastavat portit, joissa kontti suoritetaan. |
ONBUILD | Se lukee ohjeet peruskuvasta, mutta laukaisee nämä ohjeet alavirran kuvan kautta. |
LABEL | ' LABEL ' käytetään määrittämään säilön tilannekuvan metatiedot. |
Kuinka ajaa Docker-ilmentymä Docker-tiedostosta Dockerissa?
Jos haluat suorittaa Docker-esiintymän tai säilön Dockerfile-sovelluksella, luo ensin Docker-tiedosto. Tee sitten säilön perustilannekuva Dockerfilellä. Suorita sen jälkeen tilannekuva käynnistääksesi Docker-esiintymän.
Seuraa alla olevia ohjeita.
Vaihe 1: Luo Docker-tiedosto
Luo ensin Docker-tiedosto. Muista, että Dockerfilella ei ole tiedostopäätettä. Liitä sen jälkeen tiedostoon seuraavat komennot:
Golangista: 1.8
TYÖOHJ / mennä / src / sovellus
KOPIO main.go .
RUN mene rakentamaan -O verkkopalvelin .
PALJISTA 8080 : 8080
SISÄÄNTULOPISTE [ './verkkopalvelin' ]
Vaihe 2: Tee ohjelmatiedosto
Tee seuraavaksi uusi tiedosto nimeltä ' main.go ', joka sisältää yksinkertaisen Golang-ohjelman. Liitä tätä varten tiedostoon seuraava ohjelma:
pääpakettituonti (
'fmt'
'Hirsi'
'net/http'
)
toimintokäsittelijä ( Sisään http.ResponseWriter, r * http.Pyyntö ) {
fmt.Fprintf ( Sisään , 'Hei! Tervetuloa LinuxHint-opetusohjelmaan' )
}
func main ( ) {
http.HandleFunc ( '/' , käsittelijä )
loki.Kohtalovaa ( http.ListenAndServe ( '0.0.0.0:8080' , nolla ) )
}
Vaihe 3: Luo säilön tilannekuva
Luo nyt Dockerin tilannekuva säilöstä käyttämällä ' docker build -t
Yllä olevassa komennossa ' -t ' -vaihtoehto asettaa kuvan nimen tai tunnisteen, ' -f ” -vaihtoehto määrittää polun Docker-tiedostoon, josta Docker-moottorin on luettava koontikonteksti:
Voit tarkistaa, onko kuva luotu onnistuneesti vai ei, suorittamalla ' telakointikuvat
Tulos osoittaa, että olemme luoneet onnistuneesti säilön tilannekuvan Docker-tiedostosta:
Vaihe 4: Käynnistä säiliö käynnistämällä tilannekuva
Aloita nyt Dockerin ilmentymä Docker-säiliössä suorittamalla säilön tilannekuva, joka on luotu yllä olevassa vaiheessa:
telakkajuoksu -s 8080 : 8080 --nimi jatka-jatkoa -d go-imgYllä olevassa komennossa ' -s ' -vaihtoehto ajaa säilön ' 8080 ' portti ' -nimi ' määrittää säilön nimen ja ' -d ” -vaihtoehto ajaa konttia irrotetussa tilassa (taustapalvelu):
Voit tarkistaa, suoritetaanko säilö vai ei, luettele käynnissä olevat säilöt alas käyttämällä ' telakka ps 'komento:
satamatyöläinen ps
Siirry nyt kohtaan ' http://localhost:8080 ' ja tarkista, onko sovellus käynnissä paljastavassa portissa vai ei:
Yllä oleva tulos osoittaa, että olemme tehokkaasti käynnistäneet Docker-instanssin Dockerfile-sovelluksella.
Kuinka ajaa ilmentymä Docker-tiedostosta Docker Composessa?
Docker Compose on toinen tärkeä Docker-alustan laajennus, jonka avulla voimme ajaa useita esiintymiä eri säilöissä kerralla. Käyttäjät voivat myös ajaa Docker-instanssia Dockerfilesta käyttämällä Dockerin kirjoituslaajennusta. Noudata annettuja ohjeita esimerkkinä.
Vaihe 1: Luo Docker-tiedosto
Luo ensin Docker-tiedosto. Käytämme esimerkiksi samaa Docker-tiedostoa ja ohjelmatiedostoa, joita käytetään yllä olevassa osiossa:
Golangista: 1.8TYÖOHJ / mennä / src / sovellus
KOPIO main.go .
RUN mene rakentamaan -O verkkopalvelin .
PALJISTA 8080 : 8080
SISÄÄNTULOPISTE [ './verkkopalvelin' ]
Vaihe 2: Tee docker-compose.yml-tiedosto
Luo seuraavaksi ' docker-compose.yml ” tiedosto ja kopioi seuraavat avainparit tiedostoon:
versio: '3'palvelut:
web:
rakentaa:.
portit:
- 8080 : 8080
Yllä mainitussa katkaistussa:
- ' palvelut ” käytetään määrittämään erillisessä säilössä suoritettavat kirjoituspalvelut. Esimerkkinä olemme määrittäneet vain yhden palvelun ' web ” pitääksesi koodin puhtaana ja yksinkertaisena.
- ' rakentaa ” avainparia käytetään rakennuskontekstin lukemiseen Docker-tiedostosta. Täällä docker lukee ohjeet Dockerfile-tiedostosta ja rakentaa kontin niiden mukaisesti.
- ' portit ”-näppäin määrittää paljastavat portit, joissa kontti suoritetaan.
Vaihe 3: Käynnistä Docker-instanssi
Suorita nyt Docker-ilmentymä säilössä käyttämällä ' telakka-säveltää 'komento:
telakka-säveltää -d
Tarkista luettelo käynnissä olevista kirjoitussäilöistä käyttämällä ' telakka-kirjoitus ps 'komento:
telakka-säveltäminen psTulos osoittaa, että ' web ' palvelu suoritetaan onnistuneesti ' golangapp-web-1 ”kontti:
Navigoi kirjoituspalvelun paljastavaan porttiin ja tarkista, suoritetaanko ohjelma vai ei. Alla oleva tulos osoittaa, että olemme onnistuneesti käynnistäneet Docker-instanssin Dockerfilesta Docker Compose -sovelluksella:
Siinä on kyse Docker-ilmentymän suorittamisesta Dockerfile-tiedostosta.
Johtopäätös
Jos haluat suorittaa Docker-ilmentymän Docker-tiedoston säilössä, luo ensin Dockerfile. Lisää tiedoston sisällä olevat komennot Docker-säilön kuvan tai mallin luomiseksi. Tee sitten säilön kuva tai tilannekuva käyttämällä ' docker build -t