Lewati ke isi

Cara Membuat Docker image dan Upload ke Docker Hub

Cara Pertama: Build dari container

Misalnya membuat Docker image dengan nama web-app:v1 dari container web-app.

docker commit web-app web-app:v1

Menampilkan Docker images untuk mengetahui apakah image yang dibuat sudah tercipta.

docker images

Contoh hasil perintah di atas.

REPOSITORY       TAG             IMAGE ID       CREATED         SIZE web-app   v1              0086656c5db9   7 seconds ago   844MB

Cara Kedua: Build dari Dockerfile

Dockerfile adalah sebuah file teks konfigurasi yang mendeskripsikan instruksi atau perintah yang dijalankan saat proses pembuatan Docker image.

Membuat Dockerfile.

nano Dockerfile

Isi dari Dockerfile.

FROM nginx:stable-alpine
LABEL maintainer="agungsurya <[email protected]>"
COPY web-app/. /usr/share/nginx/html
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
FROM = basis image yang digunakan
LABEL maintainer = nama pembuat
COPY = copy isi folder ke folder di container
EXPOSE = buka (publish) port 80
CMD = perintah yang dijalankan

Jalankan perintah build image yang menghasilkan image dengan nama web-app:v1.

docker build -t web-app:v1 .

Contoh hasil perintah di atas.

Sending build context to Docker daemon  647.2kB
Step 1/5 : FROM nginx:stable-alpine
 ---> e1ccef1fb908
Step 2/5 : LABEL maintainer="agunsurya <[email protected]>"
 ---> Running in 9d5ec8ad6e66
Removing intermediate container 9d5ec8ad6e66
 ---> e1d4af9c4a81
Step 3/5 : COPY web-app/. /usr/share/nginx/html
 ---> 2427540472a7
Step 4/5 : EXPOSE 80
 ---> Running in ee5755a4d8ab
Removing intermediate container ee5755a4d8ab
 ---> 86ceb19cc687
Step 5/5 : CMD ["nginx", "-g", "daemon off;"]
 ---> Running in 4f57d1a56fe3
Removing intermediate container 4f57d1a56fe3
 ---> 1915e927a451
Successfully built 1915e927a451
Successfully tagged web-app:v1

Menampilkan Docker images.

docker images
REPOSITORY       TAG             IMAGE ID       CREATED          SIZE web-app   v1              1915e927a451   24 seconds ago   23.1MB

Informasi lengkap mengenai Docker build baca di docs.docker.com.

Upload (push) image

docker login

Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: osas
Password:
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

Kita ubah dulu image sebelumnya web-app:v1 menjadi agungsurya/web-app:v1.

docker tag web-app:v1 agungsurya/web-app:v1

Tampilkan kembali docker images untuk melihat hasilnya.

docker images

REPOSITORY                TAG             IMAGE ID       CREATED          SIZE
web-app            v1              1915e927a451   15 minutes ago   23.1MB
agungsurya/web-app   v1              1915e927a451   15 minutes ago   23.1MB

Sekarang push ke registry.

docker push agungsurya/web-app:v1

Contoh hasil perintah di atas.

The push refers to repository [docker.io/agungsurya/web-app]
1338f25d181c: Pushed
a7c11ed26fd5: Pushed
6e8309ec6bfd: Pushed
7ff80c2c03d5: Pushed
35e4637a9d6c: Pushed
b5d14f4aebad: Pushed
b2d5eeeaba3a: Pushed
v1: digest: sha256:2b0e45056281ad3fea049bc91baf0373d64ff64a626b76b64d224e819ea3dead size: 1778

Cek di hub.docker.com, apakah image berhasil di-push.