Setelah Anda menyelesaikan instalasi Docker, Anda akan memiliki jendela baru yang akan memandu Anda melalui langkah pertama membuat image dan container dengan Docker:
Ini adalah cara menarik untuk mempercepat Anda mengunduh gambar pertama dan menjalankannya sebagai penampung.
Anda dapat menjalankan perintah di terminal di sebelah kanan bawaan aplikasi ini, tetapi saya lebih suka menjalankannya di shell saya sendiri.
Saya membuka Terminal macOS, jalankan cd dev
untuk masuk ke dev
rumah saya folder, dan saya membuat docker
subdirektori, tempat saya akan meng-host semua eksperimen Docker. Saya menjalankan cd docker
untuk masuk ke dalamnya, lalu saya jalankan
git clone https://github.com/docker/getting-started
Perintah ini membuat getting-started
baru folder dengan isi repositori https://github.com/docker/getting-started :
Sekarang dari folder ini, jalankan perintah docker build
dengan cara ini:
docker build -t docker101tutorial .
Ini akan membuat gambar dari konten folder saat ini tempat Anda berada, dengan nama tag docker101tutorial
.
Ini adalah file Docker
*# Install the base requirements for the app.*
*# This stage is to support development.*
FROM python:alpine AS base
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
*# Run tests to validate app*
FROM node:12-alpine AS app-base
WORKDIR /app
COPY app/package.json app/yarn.lock ./
RUN yarn install
COPY app/spec ./spec
COPY app/src ./src
RUN yarn test
*# Clear out the node_modules and create the zip*
FROM app-base AS app-zip-creator
RUN rm -rf node_modules && \
apk add zip && \
zip -r /app.zip /app
*# Dev-ready container - actual files will be mounted in*
FROM base AS dev
CMD ["mkdocs", "serve", "-a", "0.0.0.0:8000"]
*# Do the actual build of the mkdocs site*
FROM base AS build
COPY . .
RUN mkdocs build
*# Extract the static content from the build*
*# and use a nginx image to serve the content*
FROM nginx:alpine
COPY --from=app-zip-creator /app.zip /usr/share/nginx/html/assets/app.zip
COPY --from=build /app/site /usr/share/nginx/html
Seperti yang Anda lihat, itu membuat gambar kita tidak hanya dari satu, tetapi 3 gambar dasar:python:alpine
, node:12-alpine
dan nginx:alpine
.
Saat Anda menjalankan docker build -t docker101tutorial .
, itu akan dimulai dengan mengunduh gambar dasar pertama:
Kemudian ia akan menjalankan semua perintah yang kita definisikan di Dockerfile.
Itu terus berlanjut sampai kita mencapai akhir:
Sekarang kita memiliki gambar docker101tutorial
dan kita dapat menjalankan container berdasarkan gambar ini.
Jalankan perintah docker run
dengan atribut tersebut:
docker run -d -p 80:80 --name docker-tutorial docker101tutorial
Kami menggunakan opsi -d
untuk menjalankan wadah di latar belakang dan mencetak ID wadah. Jika Anda melewatkan tanda ini, Anda tidak akan langsung kembali ke shell sampai container keluar (tetapi jika container tersebut berumur panjang, misalnya menjalankan layanan seperti aplikasi Node atau semacamnya, container tidak akan keluar secara otomatis).
-p
option digunakan untuk memetakan port 80 container ke mesin host port 80. Container mengekspos server Web pada port 80, dan kita dapat memetakan port di komputer kita ke port yang diekspos oleh container.
--name
memberikan nama ke wadah, dan akhirnya kami memiliki nama gambar (docker101tutorial
) yang harus kita gunakan untuk membuat wadah.
Jika Anda ragu tentang opsi perintah, jalankan docker <command> --help
, dalam hal ini docker run --help
dan Anda akan mendapatkan penjelasan yang sangat detail:
Perintah ini sangat cepat dan Anda akan mendapatkan ID penampung kembali: