Ang write-up na ito ay magbibigay ng gabay sa isang multistage na Docker build.
Isang Gabay ng Baguhan sa isang Multistage Docker Build
Upang makalikha ng Docker na imahe sa pamamagitan ng simpleng Dockerfile, at multistage Dockerfile build, tingnan ang mga nakalistang pamamaraan:
- Paano Gumawa ng Simpleng Imahe ng Docker?
- Paano Gumawa ng Imahe ng Docker Mula sa Multistage Dockerfile?
Paano Gumawa ng Simpleng Imahe ng Docker?
Upang lumikha ng isang simpleng imahe ng Docker gamit ang isang simpleng Dockerfile, pumunta sa mga ibinigay na tagubilin.
Hakbang 1: Buksan ang Terminal
Mula sa Windows ' Magsimula ” menu, buksan ang Git terminal:
Hakbang 2: Gumawa ng Bagong Direktoryo
Susunod, lumikha ng isang bagong direktoryo ng proyekto gamit ang ibinigay na utos:
Pagkatapos nito, buksan ang direktoryo ng proyekto sa tulong ng ' cd ” utos:
$ cd Multistage
Hakbang 3: Lumikha ng File ng Programa
Lumikha at magbukas ng bagong file ng programa upang ipatupad ang ' golang ” programa. Halimbawa, lumikha kami ng ' main.go ” file:
Idikit ang ibinigay na code sa “ main.go ” file. Ang program na ito ay magpi-print ng simpleng output ' Kamusta! Maligayang pagdating sa LinuxHint Tutorial ” sa lokal na host:
angkat ('fmt'
'log'
'net/http'
)
func handler ( w http . ResponseWriter , r * http. Kahilingan ) {
fmt . Fprintf ( sa , 'Hello! Welcome sa LinuxHint Tutorial' )
}
func pangunahing () {
http . HandleFunc ( '/' , handler )
log . Nakamamatay ( http . ListenAndServe ( '0.0.0.0:8080' , wala ))
}
Pindutin ang ' CTRL+O ” para i-save ang mga pagbabago at “ CTRL+X ' para lumabas.
Hakbang 4: Lumikha ng DockerFile
Lumikha at magbukas ng bagong Dockerfile sa Nano text editor gamit ang ' nano Dockerfile ” utos:
Idikit ang sumusunod na code sa loob ng “ Dockerfile ” na magtuturo sa container kung paano i-deploy ang proyekto:
MULA sa golang: 1.8WORKDIR / pumunta ka / src / app
Kopyahin ang main.go .
RUN go build -O webserver .
CMD [ './webserver' ]
Pindutin ang ' CTRL+O ” para i-save ang file at “ CTRL+X ” upang lumabas sa editor:
Hakbang 5: Lumikha ng Larawan ng Docker
Sa tulong ng Dockerfile, lumikha ng bagong imahe ng Docker sa pamamagitan ng “ pagtatayo ng docker ” utos. Ang ' -t Ang tag na ” ay ginagamit upang tukuyin ang tag/pangalan ng larawan:
Hakbang 6: Patakbuhin ang Docker Image
Matapos gawin ang imahe ng Docker, gamitin ang nabanggit na command sa ibaba upang patakbuhin ang imahe ng Docker. Ang ' -p 'Ang opsyon ay ginagamit upang tukuyin ang numero ng port kung saan ipapatupad ng Docker container ang programa:
Pagkatapos nito, mag-navigate sa ' http://localhost:8080 ” para tingnan kung tumatakbo ang application o hindi:
Mula sa output sa itaas, makikita mo na matagumpay naming nai-deploy ang application sa localhost:
Hakbang 7: Suriin ang Mga Larawan ng Docker
Panghuli, isagawa ang ' mga docker na larawan
Mapapansin na ang laki ng imahe ng Docker ay masyadong malaki upang maisagawa ang maliit na proyekto. Sa ganitong sitwasyon, ang multi-stage build ay maaaring gamitin upang bawasan ang laki ng imahe ng Docker:
Paano Gumawa ng Imahe ng Docker Mula sa Multistage Dockerfile?
Upang lumikha ng isang multistage na Dockerfile upang hatiin ang mga proseso ng pagbuo sa mga yugto at upang bawasan ang laki ng imahe, tingnan ang mga ibinigay na hakbang.
Hakbang 1: Buksan ang Dockerfile
Una, buksan ang Dockerfile sa ' Nano text editor ” sa pamamagitan ng nabanggit na utos:
Hakbang 2: Lumikha ng Multistage Dockerfile
I-paste ang sumusunod na code sa Dockerfile. Mapapansin na ang Docker file ay naglalaman ng higit sa isang ' MULA SA ” na pahayag, na nangangahulugang lumilikha kami ng isang multi-stage na Dockerfile:
WORKDIR / pumunta ka / src / app
Kopyahin ang main.go .
RUN go build -O webserver .
MULA sa alpine
WORKDIR / app
KOPYA --mula sa =base / pumunta ka / src / app / app /
CMD [ './webserver' ]
Pindutin ang ' CTRL+O ” para i-save ang mga pagbabago at “ CTRL+X ” para lumabas sa editor.
Hakbang 3: Lumikha ng Larawan ng Docker
Ngayon, buuin ang bagong imahe ng Docker sa tulong ng isang multistage na build. Para sa layuning ito, isagawa ang ibinigay na utos:
Muli, suriin ang karagdagang impormasyon tungkol sa imahe ng Docker sa pamamagitan ng ' mga larawan ng docker ” utos:
$ mga larawan ng docker new-web-imageAng output ay nagpapakita na kami ay matagumpay na nakagawa ng isang docker file at ang laki ng Docker file ay nabawasan lamang sa ' 12.9MB ”:
Hakbang 4: Patakbuhin ang Docker Image
Panghuli, patakbuhin ang imahe ng Docker upang maisagawa ang lalagyan upang ma-verify kung gumagana nang maayos ang imahe ng Docker o hindi:
Buksan ang lokal na host server sa pamamagitan ng pag-navigate sa “ http://localhost:8080 ” sa browser:
Ipinapakita ng output na matagumpay naming nai-deploy ang program sa pamamagitan ng multistage build.
Konklusyon
Tinutukoy ng Docker multistage build ang serye ng mga build sa mga yugto. Upang lumikha ng isang multistage Dockerfile, tukuyin ang higit sa isang 'MULA' na pahayag at sumangguni sa unang ' MULA SA ” pahayag bilang base build. Pagkatapos nito, lumikha ng isang bagong imahe ng Docker gamit ang ' docker build -t