Semisal kita memiliki sebuah aplikasi berbasis Python. Kita bisa membuat docker image atas aplikasi tersebut, pertama-tama kita perlu membuat sebuah Dockerfile
FROM python:3.8-slim
# define environments
ENV PYTHONUNBUFFERED 1
# Create app directory
WORKDIR /app
# Install app dependencies
RUN pip install pipenv
COPY Pipfile Pipfile.lock ./
RUN pipenv install --system --deploy
# Bundle app source
COPY . .
EXPOSE 3000
CMD ./start.sh
Dalam dockerfile tersebut, kita mendefinisikan bahwa kita akan membuat image yang berbasiskan image python:3.8
. Kita juga mengeset environment variable PYTHONBUFFERED dan melakukan mendeklarasikan beberapa aksi untuk menginisiasi dan menjalankan program dalam container.
Selanjutnya kita bisa menjalankan perintah berikut:
# docker build -t <nama-image> .
docker build -t stalchmst/myservice .
Dengan demikian, kita sudah memiliki image myservice
. Image ini tidak bisa langsung dijalankan. Kita perlu terlebih dahulu membuat container
berdasarkan image tersebut.
Terkadang kita juga perlu mempublikasi image kita supaya bisa diakses melalui internet/image registry. Dengan demikian, nantinya orang lain akan dapat mendownload image kita dan membuat container berdasarkan image tersebut. Untuk mempublish image, kita bisa melakukan perintah berikut:
docker push -t stalchmst/myservice
Perintah untuk membuat sekaligus menjalankan docker container adalah sebagai berikut
# docker run --name <container-name> [-p <hostPort>:<containerPort>] [-e <key>=<value>] -d <image-name>
docker run --name myservice -p 8080:3000 -d stalchmst/myservice
Jika docker container sudah terbuat, maka selanjutnya kita bisa menjalankan container tersebut dengan perintah ini:
# docker start <container-name>
docker start myservice