Tutorial Docker: panduan lengkap untuk menjalankan container

Tutorial Docker: panduan lengkap untuk menjalankan container

Docker adalah platform open-source yang dirancang untuk menyederhanakan proses pengembangan, distribusi, dan menjalankan aplikasi. Proses pengiriman software menjadi lebih praktis berkat containerization (kontainerisasi), yaitu teknologi yang mengemas aplikasi beserta dependensinya ke dalam unit terisolasi yang disebut container. Dengan metode ini, software bisa berjalan secara konsisten di berbagai lingkungan.

Secara umum, Docker memiliki beberapa komponen utama, seperti Docker Engine, Docker Hub, image, container, Dockerfile, dan Docker Compose. Dengan memahami komponen-komponen ini, Anda bisa membuat, men-deploy, dan mengelola aplikasi berbasis container dengan lebih mudah.

Anda bisa menggunakan Docker melalui command line (CLI), tapi platform ini juga menyediakan versi desktop dengan antarmuka grafis. Proses konfigurasinya pun berbeda. Versi desktop bisa diinstal seperti aplikasi biasa dalam format .dmg atau .exe, sedangkan versi CLI memerlukan penginstalan melalui package manager seperti APT atau Homebrew.

Saat menggunakan Docker, berbagai error bisa muncul di berbagai bagian, mulai dari image, Dockerfile, hingga container yang sedang berjalan. Oleh karena itu, Anda juga perlu memahami jenis error yang umum terjadi, penyebabnya, serta cara mengatasinya agar tidak memengaruhi seluruh proses. Sudah siap belajar Docker? Yuk, langsung scroll ke bawah!

Apa itu containerization?

Containerization adalah metode virtualisasi tingkat sistem operasi yang digunakan untuk mengemas aplikasi agar berjalan di ruang pengguna yang terisolasi, yang disebut container.

Container mengemas aplikasi beserta semua komponen yang dibutuhkan, seperti kode, library sistem, dependensi, dan file konfigurasi, dalam satu lingkungan terisolasi.

Berbeda dengan mesin virtual (VM), container lebih ringan karena menggunakan kernel sistem operasi yang sama dari host. Dengan metode ini, aplikasi bisa berjalan secara konsisten di berbagai lingkungan tanpa bergantung pada infrastruktur tertentu.

Manfaat containerization meliputi:

  • Portabilitas. Container bisa berjalan secara konsisten di berbagai lingkungan, mulai dari perangkat lokal hingga server jarak jauh dari penyedia seperti Hostinger. Dengan cara ini, masalah kompatibilitas bisa dihindari saat aplikasi dipindahkan ke sistem yang berbeda, baik saat deployment maupun kolaborasi.
  • Efisiensi. VM memerlukan sistem operasi tamu lengkap dan hypervisor, sedangkan container tidak. Hal ini membuat container menjadi solusi virtualisasi yang lebih ringan dan efisien.
  • Isolasi. Setiap container menjalankan proses secara terpisah, dengan software, konfigurasi, stack jaringan, dan variabel lingkungan masing-masing. Kondisi ini membantu meningkatkan keamanan sekaligus mencegah konflik antar aplikasi.

Apa keuntungan menggunakan Docker?

Docker membantu menyediakan cara yang terjamin, efisien, dan terstandar untuk membuat, membagikan, dan menjalankan aplikasi. Dengan menggunakan Docker, Anda juga bisa meminimalkan beberapa masalah umum dalam pengembangan dan deployment software.

  • Perbedaan environment antar developer. Docker memastikan aplikasi berjalan dengan cara yang sama di setiap lingkungan, baik di perangkat developer maupun di tahap produksi. Dengan begitu, bug yang disebabkan oleh perbedaan lingkungan bisa dihindari.
  • Pengembangan dan peluncuran yang lebih cepat. Docker mempermudah pembuatan environment yang bisa direplikasi. Developer juga bisa langsung menggunakan fitur seperti peta atau payment gateway tanpa harus membangunnya dari nol, sehingga proses pengembangan menjadi lebih efisien.
  • Skalabilitas dan portabilitas. Dengan tool seperti Docker Compose, Anda bisa mendefinisikan stack aplikasi multi-container dalam satu file dan membagikannya dengan mudah. Metode ini membantu menjaga konsistensi di seluruh tim sekaligus memudahkan proses scaling sesuai kebutuhan.
  • Efisiensi resource. Karena container bersifat ringan dan menggunakan kernel sistem operasi host, penggunaan resource menjadi lebih hemat dibandingkan VM tradisional.

Konsep inti Docker

Docker mengemas konsep containerization ke dalam beberapa komponen inti yang saling terhubung. Semua komponen ini bekerja bersama sebagai platform untuk mengelola seluruh lifecycle aplikasi berbasis container, mulai dari proses build hingga menjalankan aplikasi multi-layanan.

Docker Engine

Docker Engine adalah teknologi open-source inti yang digunakan untuk membangun dan menjalankan container. Komponen ini menggunakan arsitektur client-server untuk mengelola berbagai objek Docker, seperti image, container, dan network.

Docker Engine terdiri dari tiga bagian utama:

  1. Server. Proses daemon (dockerd) yang berjalan terus-menerus untuk menangani berbagai tugas, seperti membuat, menjalankan, dan menghapus container.
  2. API. Antarmuka yang memungkinkan program, termasuk Docker CLI, untuk berkomunikasi dan memberikan instruksi ke daemon.
  3. Docker CLI. Tool berbasis command line yang menjadi cara utama pengguna berinteraksi dengan Docker.

Agar lebih mudah dipahami, bayangkan Docker Engine seperti sistem kerja di restoran.

  • Server (dockerd) berperan seperti koki yang menyiapkan hidangan, yaitu komponen yang menjalankan container.
  • API berfungsi seperti menu dan catatan pesanan yang memberi tahu apa yang harus dibuat.
  • Docker CLI berperan seperti pelayan yang menerima perintah, lalu menyampaikannya ke dapur.

Untuk memastikan Docker Engine berjalan dan terhubung dengan baik, Anda bisa menjalankan perintah berikut:

docker ps

Perintah ini meminta Docker daemon untuk menampilkan daftar container yang sedang berjalan. Kalau Docker Engine berjalan dengan normal, perintah tersebut akan menampilkan daftar container aktif.

Docker Hub

Docker Hub adalah registry publik bawaan Docker, yaitu layanan untuk menyimpan dan mendistribusikan image. Platform ini menyediakan berbagai image resmi untuk software populer seperti nginx, Node, dan Python. Selain itu, pengguna juga bisa membuat repositori privat untuk menyimpan image kustom.

Saat membuat container, Anda biasanya membutuhkan berbagai paket software dari image tertentu. Docker Hub membantu menyederhanakan proses tersebut dengan menyediakan repository terpusat untuk mendownload image.

Docker Hub menggunakan tag untuk mengidentifikasi versi image, misalnya latest. Dengan penggunaan tag, Anda bisa memastikan versi yang digunakan tetap konsisten di berbagai environment.

Docker Hub bisa dianalogikan seperti buku resep masakan. Anda bisa mengambil resep yang sudah tersedia, menggunakannya, atau menyimpan resep sendiri untuk digunakan kembali.

Anda bisa berinteraksi dengan Docker Hub menggunakan perintah Docker. Misalnya, gunakan perintah berikut untuk mendownload image dari registry:

docker pull <name>:<tag>

Contohnya, untuk mendownload image Ubuntu terbaru:

docker pull ubuntu:latest

Image Docker

Docker image adalah template hanya-baca yang berisi semua instruksi dan file yang dibutuhkan untuk membuat container. Di dalam image, terdapat kode aplikasi, file konfigurasi, library sistem, dan komponen sistem operasi dasar.

Image dibuat menggunakan Dockerfile. Setiap instruksi dalam Dockerfile akan membentuk lapisan terpisah yang tidak bisa diubah, yang menentukan isi dan perilaku image.

Secara sederhana, image bisa dianggap sebagai blueprint untuk suatu perangkat. Blueprint ini berisi semua instruksi yang diperlukan untuk membangun container, tapi tidak bisa diubah setelah dibuat.

Untuk melihat daftar image yang tersedia di sistem lokal, jalankan perintah:

docker images

Untuk membangun image di direktori saat ini dan memberinya tag, gunakan perintah di bawah ini. Kalau image yang dibutuhkan belum tersedia, Docker akan otomatis mendownloadnya dari Docker Hub:

docker build -t your-image-name:latest .

Saat menggunakan image, sebaiknya Anda menggunakan hanya sedikit base image. Dengan begitu, ukuran image tetap kecil dan potensi celah keamanan dari komponen yang tidak diperlukan bisa diminimalkan.

Container Docker

Container adalah instance yang bisa dijalankan dari sebuah image. Container merupakan lingkungan terisolasi tempat aplikasi berjalan, lengkap dengan konfigurasi, dependensi, dan paket software yang diperlukan.

Saat container dibuat, Docker menambahkan lapisan yang bisa ditulis di atas lapisan hanya-baca milik image. Lapisan ini memungkinkan perubahan dilakukan pada file system di dalam container.

Container dirancang bersifat ephemeral atau stateless. Artinya, container bisa dihentikan, dihapus, dan dibuat ulang dengan konfigurasi yang sama tanpa memengaruhi sistem secara keseluruhan. Satu container biasanya dikelola menggunakan Docker CLI. Untuk mengelola banyak container sekaligus, Anda bisa menggunakan Docker Compose atau tool orkestrasi seperti Kubernetes.

Kalau menggunakan analogi seperti sebelumnya, container adalah mesin yang benar-benar dijalankan berdasarkan blueprint dari image. Saat Anda membuat kontainer Docker, Anda menyiapkan dan memulai mesin tersebut untuk menjalankan proses yang didefinisikan di dalam image.

Untuk menjalankan container interaktif dari image Ubuntu, gunakan perintah berikut:

docker run -it ubuntu /bin/bash

Perintah ini akan menjalankan image Ubuntu, membuat container, lalu membuka shell interaktif.

Dockerfile

Dockerfile adalah file teks yang berisi kumpulan instruksi untuk membangun Docker image. Semua konfigurasi didefinisikan di dalamnya, mulai dari base image, variabel lingkungan, hingga kode aplikasi.

Beberapa instruksi yang paling umum digunakan dalam Dockerfile:

  • FROM. Menentukan base image untuk proses build.
  • RUN. Menjalankan perintah selama proses build image.
  • COPY atau ADD. Menyalin file dari host ke dalam image.
  • CMD atau ENTRYPOINT. Menentukan perintah yang dijalankan saat container dimulai.
  • ENV. Menentukan variabel lingkungan.
  • WORKDIR. Menentukan direktori kerja untuk instruksi berikutnya.

Sebagian besar instruksi dalam Dockerfile akan membuat lapisan baru pada image. Namun, beberapa instruksi seperti WORKDIR hanya mengatur metadata tanpa membuat lapisan baru.

Berikut contoh isi Dockerfile:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["python", "app.py"]

Docker Compose

Docker Compose adalah tool yang digunakan untuk mendefinisikan dan mengelola aplikasi multi-container melalui satu file konfigurasi, biasanya bernama docker-compose.yml.

Di dalam file tersebut, Anda bisa mendefinisikan semua container, network, dan volume yang dibutuhkan untuk menjalankan aplikasi. Setiap container dalam Docker Compose disebut sebagai service. Dengan Docker Compose, Anda bisa menjalankan dan mengelola seluruh service hanya dengan satu perintah.

Tanpa Docker Compose, setiap container harus dikonfigurasi dan dijalankan secara manual melalui Docker CLI. Kalau aplikasi terdiri dari banyak layanan yang saling terhubung, proses ini bisa menjadi cukup rumit dan memakan waktu.

Kalau satu container adalah satu perangkat, Docker Compose bisa dianggap sebagai sistem yang mengatur bagaimana semua perangkat bekerja bersama dalam satu alur. Analoginya seperti cara oven, kulkas, dan pemanggang roti yang dinyalakan bersamaan menggunakan satu sakelar untuk melakukan proses memasak.

Berikut contoh file Docker Compose:

services:
  web:
    build: ./web  # Membangun image dari Dockerfile di direktori ./web
    ports:
      - "8000:8000"  # Memetakan port host 8000 ke port container 8000
    depends_on:
      - db     # Menunggu hingga service db dijalankan
      - redis  # Menunggu hingga service redis dijalankan

  db:
    image: postgres:15  # Menggunakan image PostgreSQL 15 resmi
    environment:
      POSTGRES_USER: myuser       # Mengatur username database
      POSTGRES_PASSWORD: mypassword  # Mengatur password database
      POSTGRES_DB: mydb           # Mengatur nama database awal
    volumes:
      - db-data:/var/lib/postgresql/data  # Menyimpan data database menggunakan volume bernama

  redis:
    image: redis:alpine  # Menggunakan image Redis ringan untuk caching

volumes:
  db-data:  # Mendefinisikan volume bernama untuk menyimpan data database

Untuk menjalankan semua service dalam file docker-compose.yml di di latar belakang, jalankan perintahnya dengan flag -d atau mode detached.

docker compose up -d

Docker Compose juga menyediakan berbagai perintah lain untuk mengelola container sepanjang lifecycle aplikasi. Untuk penjelasan lebih lanjut, Anda bisa membaca panduan tentang Docker Compose.

Cara menginstal Docker

Proses penginstalan Docker bisa berbeda tergantung pada jenis yang digunakan. Kalau menggunakan Docker Desktop, Anda cukup mendownload paket installer dari website resmi, lalu menginstalnya seperti aplikasi biasa.

Sementara itu, Docker CLI bisa diinstal melalui perintah di package manager sistem, seperti APT di Ubuntu atau Homebrew di macOS. Untuk langkah yang lebih lengkap, Anda bisa melihat dokumentasi resmi sesuai sistem operasi yang digunakan.

Perlu diingat, Docker CLI tidak menyertakan beberapa fitur tambahan seperti Docker Compose sehingga Anda perlu menginstalnya secara terpisah. Kalau menggunakan layanan hosting Docker dari Hostinger, Anda tidak perlu melakukan proses ini karena fitur Docker Manager sudah mendukung Docker Compose secara langsung.

Memahami perintah dasar Docker

Docker CLI digunakan untuk berinteraksi dengan Docker Engine dan mengelola container. Berikut beberapa perintah dasar Docker yang paling sering digunakan:

  • docker ps -a. Menampilkan semua container, termasuk yang sudah dihentikan.
  • docker pull <name>:<tag>. Mendownload image dari registry ke mesin lokal.
  • docker rmi <image>. Menghapus image dari sistem lokal.
  • docker stop <container>. Menghentikan container yang sedang berjalan dengan aman.
  • docker rm <container>. Menghapus container.

Cara mengelola volume Docker

Volume adalah mekanisme utama untuk menjaga data tetap tersimpan di Docker. Dengan menggunakan volume, data tetap bisa diakses meskipun container dihapus.

Hal ini penting karena dalam siklus penggunaan container, Anda mungkin perlu menghentikan atau menghapus container untuk keperluan update atau maintenance. Kalau container tersebut menjalankan aplikasi seperti database, menjaga integritas data menjadi hal yang sangat penting.

Docker menyediakan tiga jenis penyimpanan utama:

  • Volume. Data disimpan di area khusus yang dikelola Docker, biasanya berada di direktori /var/lib/docker/volumes/ pada sistem host.
  • Bind mount. Menghubungkan file atau direktori dari host langsung ke container.
  • tmpfs mount. Menyimpan data di memori host yang akan hilang saat container berhenti.

Berikut langkah-langkah untuk membuat dan mengelola volume:

  1. Buat volume baru dengan perintah berikut. Perintah ini akan membuat volume bernama my-database-data.
docker volume create my-database-data
  1. Jalankan container database dengan flag -v untuk memetakan volume tersebut ke direktori data internal container. Berikut perintahnya:
docker run -d \
  --name my-database \
  -e MYSQL_ROOT_PASSWORD=securepassword \
  -v my-database-data:/var/lib/mysql \
  mysql:latest
  1. Periksa detail volume dan lokasinya pada host dengan menjalankan:
docker volume inspect my-database-data
  1. Untuk menghapus volume yang tidak digunakan dan tidak terkait ke container mana pun sekaligus mengosongkan ruang disk, gunakan perintah berikut:
docker volume prune -a

Selain menggunakan perintah CLI, Anda juga bisa mendefinisikan volume melalui file Docker Compose. Cara ini memudahkan pengelolaan volume, terutama saat Anda menjalankan banyak service.

Sebagai contoh, konfigurasi YAML berikut mencakup langkah-langkah untuk membuat volume dan melakukan mount container seperti pada contoh di atas:

services:

  my-database:

    image: mysql:latest

    container_name: my-database

    environment:
      MYSQL_ROOT_PASSWORD: securepassword

    volumes:
      - my-database-data:/var/lib/mysql

volumes:
  my-database-data:

Cara membuat jaringan Docker

Jaringan Docker berfungsi untuk mengatur komunikasi antar container dan dengan sistem eksternal. Secara default, Docker akan menghubungkan container ke jaringan bawaan bernama bridge network. Jaringan ini memungkinkan container berkomunikasi dengan host, tetapi kurang fleksibel untuk aplikasi dengan banyak service.

Untuk aplikasi multi-service, sebaiknya gunakan user-defined bridge network. Dengan jenis jaringan ini, container bisa saling berkomunikasi menggunakan nama service, sehingga lebih mudah dikelola dan lebih terstruktur. Hal ini mempermudah penemuan layanan, meningkatkan kontrol terhadap cara kontainer saling berinteraksi, dan meminimalkan gangguan antar layanan.

Anda bisa menghubungkan container ke user-defined bridge network dengan menambahkan direktif networks ke konfigurasi service di file YAML Docker Compose. Berikut contohnya:

services:

  my-database:

    image: mysql:latest

    container_name: my-database

    environment:
      MYSQL_ROOT_PASSWORD: securepassword

    volumes:
      - my-database-data:/var/lib/mysql

    networks:
      - my-app-network #create a network

Selain itu, Anda bisa membuat user-defined bridge network dengan perintah berikut, dengan nama my-app-network:

docker network create my-app-network

Setelah itu, jalankan container menggunakan Docker CLI dengan flag –name untuk menetapkan nama layanan dan –network untuk menentukan jaringan yang akan dihubungkan. Berikut contohnya:

docker run -d \
  --name my-database \
  --network my-app-network \
  -e MYSQL_ROOT_PASSWORD=securepassword \
  -v my-database-data:/var/lib/mysql \
  mysql:latest

Kalau ingin menambahkan container lain ke network yang sama, cukup jalankan perintah yang sama dengan konfigurasi layanan yang berbeda. Dalam contoh berikut, kita menambahkan flag -p untuk memetakan port internal kontainer 80 ke port 8080 pada mesin host agar bisa diakses dari luar.

docker run -d \
  --name my-webapp \
  --network my-app-network \
  -p 8080:80 \
  my-web-app-image:latest

Mengatasi masalah umum Docker

Saat bekerja dengan Docker, masalah yang sering muncul biasanya berkaitan dengan struktur berlapisnya, seperti image, container, volume, dan network. Berikut beberapa masalah yang umum terjadi beserta cara mengatasinya.

Container langsung berhenti

Container bisa langsung berhenti setelah dijalankan karena proses utama yang didefinisikan melalui CMD atau ENTRYPOINT di Dockerfile sudah selesai dijalankan atau mengalami error. Kondisi ini juga bisa terjadi kalau Docker mencoba menjalankan service yang hanya berjalan di latar belakang tanpa mode detached.

Beberapa solusi untuk error ini antara lain:

  • Periksa log. Gunakan perintah docker logs <nama_container> untuk melihat output aplikasi, termasuk stdout dan stderr. Dari sini, Anda bisa mengetahui penyebab container berhenti atau mengalami crash.
  • Periksa instruksi di Dockerfile. Pastikan container menjalankan proses yang bersifat jangka panjang dengan memeriksa apakah Dockerfile berisi instruksi CMD atau ENTRYPOINT. Misalnya, web server harus tetap berjalan agar bisa melayani request.
  • Jalankan dalam mode detached. Kalau aplikasinya merupakan service yang berjalan terus-menerus dan ingin dijalankan di latar belakang, pastikan menggunakan flag -d atau –detach saat menjalankan docker run atau docker compose run. flag -d atau –detach saat menjalankan docker run atau docker compose run.

Masalah caching layer pada image

Kalau perubahan pada Dockerfile seperti update versi package tidak terlihat diterapkan, kemungkinan Docker masih menggunakan cache dari layer sebelumnya. Mekanisme caching ini memang mempercepat proses build, tapi bisa menyebabkan perubahan tidak ikut diterapkan.

Walau meningkatkan efisiensi, perubahan pada layer awal Dockerfile bisa menimbulkan masalah, karena instruksi setelahnya menjadi tidak valid.

Cara paling sederhana untuk mengatasi masalah ini adalah memaksa build ulang sepenuhnya dan mengabaikan cache layer. Lakukan dengan menambahkan opsi –no-cache saat memulai proses build, seperti perintah berikut:

docker build --no-cache -t my-app:latest .

Saat menginstal package di Dockerfile, sebaiknya sertakan perintah yang memastikan daftar package selalu diperbarui. Pada sistem berbasis Debian, Anda bisa menggabungkan apt-get update dan apt-get install -y –no-install-recommend dalam satu instruksi RUN:

RUN apt-get update && apt-get install -y --no-install-recommends

Kegagalan autentikasi registry

Kalau muncul error seperti “denied: requested access to the resource is denied” saat melakukan push image ke registry seperti Docker Hub, biasanya Docker CLI belum terautentikasi dengan registry tersebut.

Untuk mengatasinya, Anda perlu login terlebih dahulu ke registry. Berikut langkah-langkahnya:

  1. Masuk ke registry menggunakan perintah berikut. Ganti my-registry.example.com dengan alamat registry yang Anda gunakan. Kalau ingin mengupload image ke Docker Hub, bagian alamat registry bisa diabaikan.
docker login my-registry.example.com
  1. Masukkan username dan password saat diminta.
  2. Beri tag image dengan format yang sesuai, yaitu mencakup registry host, repository, dan tag, sebelum melakukan push:
docker tag my-local-image:latest my-registry.example.com/my-repo/my-local-image:latest
  1. Kirim image ke registry dengan perintah berikut:
docker push my-registry.example.com/my-repo/my-local-image:latest

Setelah ini, apa langkah berikutnya untuk belajar Docker?

Kalau ingin benar-benar menguasai Docker dan menggunakannya untuk kebutuhan produksi, Anda perlu mempelajari lebih dari sekadar penggunaan dasar, seperti menjalankan satu container atau mencoba beberapa perintah sederhana. Langkah berikutnya adalah mulai memahami cara mengelola aplikasi yang lebih kompleks, terutama yang terdiri dari banyak service dan membutuhkan ketersediaan tinggi.

Selain Docker Compose, Anda juga perlu mempelajari tool orkestrasi seperti Docker Swarm atau Kubernetes. Tool ini digunakan untuk mengelola dan melakukan scaling container di banyak mesin dalam satu cluster, sehingga aplikasi tetap stabil saat beban meningkat.

Selain itu, pemahaman tentang sistem jaringan Docker juga penting. Salah satu yang perlu dipelajari adalah Overlay Network Driver yang digunakan dalam mode Docker Swarm untuk menghubungkan beberapa host dalam satu cluster. Menghubungkan banyak mesin menggunakan jaringan bawaan Docker bisa cukup rumit dan dilakukan secara manual, sedangkan overlay network membuat proses komunikasi antar host menjadi lebih sederhana dan terstruktur.

Terakhir, Anda bisa mulai mengeksplorasi berbagai use case Docker agar lebih memahami bagaimana containerization digunakan dalam praktik, baik untuk pengembangan maupun deployment aplikasi. Selamat mencoba dan semoga berhasil!

Semua konten tutorial di website ini telah melalui peninjauan menyeluruh sesuai standar dan komitmen editorial Hostinger.

Author
Penulis

Faradilla Ayunindya

Faradilla, yang lebih akrab disapa Ninda, sudah berpengalaman selama 10 tahun sebagai linguist dan 5 tahun sebagai Content Marketing Specialist di Hostinger. Ia suka mengikuti tren teknologi, digital marketing, dan belajar bahasa. Melalui tutorial Hostinger ini, Ninda ingin berbagi informasi dan membantu pembaca mengatasi masalah yang dialami. Kenali Ninda lebih dekat di LinkedIn.

Apa Kata Pelanggan Kami

Tinggalkan Komentar

Silakan isi kolom di bawah ini.Silakan tandai checkbox persetujuan.Silakan isi kolom yang tersedia dan beri centang pada checkbox privasi

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Thank you! Your comment has been successfully submitted. It will be approved within the next 24 hours.