Cara Membuat Docker image dan Upload ke Docker Hub

Secara default, Docker image bisa kita dapatkan dari Docker registry di Docker Hub. Docker image bisa juga kita buat sendiri, apakah itu dari container yang sudah ada atau build dari Dockerfile. Nah, pada seri tutorial Docker kali ini kita akan belajar bagaimana cara membuat Docker image dan juga upload (push) Docker image ke registry.

Cara Pertama: Build dari container

Pada tutorial sebelumnya kita telah belajar bagaimana cara deploy website HTML dengan metode copy file website ke dalam container. Container tersebut bisa kita jadikan image.

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

docker commit web-freelancer web-freelancer:v1  

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

docker images

Contoh hasil perintah di atas.

REPOSITORY       TAG             IMAGE ID       CREATED         SIZEweb-freelancer   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-alpineLABEL maintainer=”Musa Amin <[email protected]>”COPY freelancer/. /usr/share/nginx/htmlEXPOSE 80CMD [“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-freelancer:v1.

docker build -t web-freelancer:v1 .

Contoh hasil perintah di atas.

Sending build context to Docker daemon  647.2kBStep 1/5 : FROM nginx:stable-alpine —> e1ccef1fb908Step 2/5 : LABEL maintainer=”Musa Amin <[email protected]>” —> Running in 9d5ec8ad6e66Removing intermediate container 9d5ec8ad6e66 —> e1d4af9c4a81Step 3/5 : COPY freelancer/. /usr/share/nginx/html —> 2427540472a7Step 4/5 : EXPOSE 80 —> Running in ee5755a4d8abRemoving intermediate container ee5755a4d8ab —> 86ceb19cc687Step 5/5 : CMD [“nginx”, “-g”, “daemon off;”] —> Running in 4f57d1a56fe3Removing intermediate container 4f57d1a56fe3 —> 1915e927a451Successfully built 1915e927a451Successfully tagged web-freelancer:v1    

Menampilkan Docker images.

docker imagesREPOSITORY       TAG             IMAGE ID       CREATED          SIZEweb-freelancer   v1              1915e927a451   24 seconds ago   23.1MB

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

Upload (push) image

Selanjutnya kita akan upload (push) image ke Docker registry, Docker Hub.

Buatlah akun terlebih dahulu di hub.docker.com.

Login ke Docker Hub.

docker login    

Contoh hasil perintah di atas.

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: musaaminPassword: WARNING! Your password will be stored unencrypted in /root/.docker/config.json.Configure a credential helper to remove this warning. Seehttps://docs.docker.com/engine/reference/commandline/login/#credentials-storeLogin Succeeded    

image yang akan di-push harus menyertakan username registry. Misalnya username saya adalah musaamin, berarti nama images harus musaamin/repository:tag.

Kita ubah dulu image sebelumnya web-freelancer:v1 menjadi musaamin/web-freelancer:v1.

docker tag web-freelancer:v1 musaamin/web-freelancer:v1    

Tampilkan kembali docker images untuk melihat hasilnya.

docker imagesREPOSITORY                TAG             IMAGE ID       CREATED          SIZEweb-freelancer            v1              1915e927a451   15 minutes ago   23.1MBmusaamin/web-freelancer   v1              1915e927a451   15 minutes ago   23.1MB    

Sekarang push ke registry.

docker push musaamin/web-freelancer:v1

Contoh hasil perintah di atas.

The push refers to repository [docker.io/musaamin/web-freelancer]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.

Download (pull) image

Uji coba download (pull) image yang telah di-push sebelumnya.

docker pull musaamin/web-freelancer:v1    

Uji coba membuat container.

docker run -d -p 80:80 –name web web-freelancer:v1  

Tampilkan container.

docker psCONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                               NAMESde139a9c6f50   web-freelancer:v1   “/docker-entrypoint.…”   43 seconds ago   Up 41 seconds   0.0.0.0:80->80/tcp, :::80->80/tcp   web    

sumber : https://musaamin.web.id/cara-membuat-docker-image-upload-docker-hub/

Leave a Reply

Your email address will not be published. Required fields are marked *