Membuat Docker Image

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.

Mempublikasi Docker Image

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

Membuat/Menjalankan Docker Container

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