Читать книгу Docker w praktyce - Ian Miell - Страница 18
1.2.3. Budowanie dockerowego obrazu
ОглавлениеZdefiniowaliśmy kroki budowania w pliku Dockerfile. Teraz spróbujemy zbudować dockerowy obraz, wpisując polecenie z rysunku 1.7. Wynik będzie wyglądał podobnie do tego:
Rysunek 1.7. Dockerowa komenda build
Sending build context to Docker daemon 2.048kB
Docker umieszcza pliki i katalogi w ścieżce podanej dla polecenia build
Step 1/7 : FROM node
Każdy krok budowania jest numerowany sekwencyjnie, począwszy od 1, oraz jest wyświetlany razem z wykonywanym poleceniem
Każde polecenie powoduje utworzenie nowego obrazu i uzyskanie jego identyfikatora
---> 2ca756a6578b
Step 2/7 : LABEL maintainer ian.miell@gmail.com
---> Running in bf73f87c88d6
---> 5383857304fc
Removing intermediate container bf73f87c88d6
Aby zaoszczędzić miejsce, przed kontynuacją jest usuwany każdy pośredni kontener
Step 3/7 : RUN git clone -q https://github.com/docker-in-practice/todo.git
---> Running in 761baf524cc1
---> 4350cb1c977c
Removing intermediate container 761baf524cc1
Step 4/7 : WORKDIR todo
---> a1b24710f458
Removing intermediate container 0f8cd22fbe83
Step 5/7 : RUN npm install > /dev/null
---> Running in 92a8f9ba530a
npm info it worked if it ends with ok
Tutaj jest wyświetlany podgląd budowania (został usunięty z tego listingu)
[...]
npm info ok
---> 6ee4d7bba544
Removing intermediate container 92a8f9ba530a
Step 6/7 : EXPOSE8000
---> Running in 8e33c1ded161
---> 3ea44544f13c
Removing intermediate container 8e33c1ded161
Step 7/7 : CMD npm start
---> Running in ccc076ee38fe
---> 66c76cea05bb
Removing intermediate container ccc076ee38fe
Successfully built 66c76cea05bb
Końcowy identyfikator obrazu dla tego budowania, gotowy do otagowania
Mamy teraz dockerowy obraz z identyfikatorem („66c76cea05bb” w poprzednim przykładzie, ale twój identyfikator będzie inny). Korzystanie z tego identyfikatora może być kłopotliwe, zatem w celu łatwiejszego odwoływania się do niego można go oznaczyć, co pokazano na rysunku 1.8.
Rysunek 1.8. Dockerowa podkomenda tag
Wpiszmy powyższe polecenie, zastępując 66c76cea05bb identyfikatorem obrazu wygenerowanym przez ciebie.
Możemy teraz zbudować własną kopię dockerowego obrazu na podstawie Dockerfile, odtwarzając środowisko zdefiniowane przez kogoś innego!