GNU/Linux >> Belajar Linux >  >> Panels >> Docker

Cara Menggunakan Gambar Docker, Wadah, dan File Docker Secara Mendalam

Gambar Docker memudahkan penerapan beberapa wadah tanpa harus mempertahankan gambar yang sama di beberapa mesin virtual. Anda dapat menggunakan Dockerfile untuk mengotomatiskan instalasi dan konfigurasi gambar dan dependensinya. ADockerfile adalah file teks dari perintah (yang dijalankan secara berurutan) yang digunakan untuk mengotomatiskan instalasi dan konfigurasi image Docker. Artikel ini memperluas panduan kami tentangCara Menggunakan Dockerfile untuk Membangun Image Docker dengan membahas pemanfaatan image, container, dan Dockerfiles Docker secara mendalam.

Sebelum Anda Mulai

  1. Biasakan diri Anda dengan panduan Memulai kami, buat dan perbarui Linode, dan instal Docker. Atau, Anda dapat dengan cepat menerapkan Linode yang telah diperbarui dan mendukung Docker dengan Aplikasi Docker Marketplace.

  2. Pastikan Linode Anda aman dengan mengikuti panduan kami tentang Menyiapkan dan Mengamankan Instans Komputasi.

  3. Panduan ini mengasumsikan Anda nyaman menggunakan antarmuka baris perintah (CLI) Docker. Untuk mempelajari lebih lanjut tentang CLI Docker, lihat dokumentasinya.

  4. Tinjau panduan kami untuk memahami dasar-dasar Dockerfiles.

Buat Dockerfile Anda untuk Gambar Docker

Docker membutuhkan Dockerfile yang berfungsi untuk build-nya. Di sini, kita akan membuat Dockerfile yang menyiapkan image Ubuntu dengan Apache yang bertindak sebagai server web dan menggunakan port HTTP standar 80.

  1. Pada prompt perintah (baik melalui SSH atau Lish di Linode Manager), buat dan ubah ke direktori baru:

    mkdir ~/mydockerbuild && cd ~/mydockerbuild
    
  2. Buat contoh Dockerfile untuk aplikasi Apache Anda:

    touch apache_dockerfile
    
  3. Buka Dockerfile menggunakan editor teks pilihan Anda (untuk contoh ini, kami menggunakan nano):

    nano apache_dockerfile
    
  4. Salin contoh berikut ke Dockerfile Anda. Ini membuat Dockerfile yang menghasilkan image Ubuntu yang diperbarui, menetapkan informasi pengelola, menginstal Apache, membuka port container 80, dan akhirnya memulai server Apache saat dijalankan:

    File:apache_dockerfile
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    FROM ubuntu
    MAINTAINER John Doe [email protected]
    ARG DEBIAN_FRONTEND=noninteractive
    RUN apt-get update
    RUN apt-get upgrade -y
    RUN apt-get install apache2 -y
    RUN apt-get clean
    EXPOSE 80
    CMD ["apache2ctl","-D","FOREGROUND"]
    Catatan ARG DEBIAN_FRONTEND=noninteractive instruksi memastikan bahwa RUN apt-get berikutnya perintah dijalankan tanpa memerlukan input pengguna tambahan saat membuat gambar. Instruksi ini juga dapat ditulis menggunakan ENV bukannya ARG untuk membuat variabel lingkungan bertahan dalam wadah yang digunakan dengan gambar. Karena non-interaktivitas mungkin tidak diharapkan saat bekerja dalam wadah seperti itu, ARG direkomendasikan dalam kasus ini.
  5. Simpan dan tutup file.

Membangun Gambar Docker dari Dockerfile

  1. Buat gambar berlabel apache_image dari Dockerfile menggunakan docker build perintah:

    docker build ~/mydockerbuild -f apache_dockerfile -t apache_image
    
  2. Setelah build selesai dan Anda kembali ke command prompt, tampilkan gambar sistem Anda yang tersedia dengan perintah berikut:

     docker images
    

    Outputnya akan terlihat seperti ini (repositori “ubuntu” juga tersedia karena baris “FROM ubuntu” di Dockerfile):

    REPOSITORY     TAG       IMAGE ID       CREATED         SIZE
    apache_image   latest    7e5c14739da5   7 seconds ago   215MB
    ubuntu         latest    7e0aa2d69a15   6 weeks ago     72.7MB
    Catatan

    Secara default, gambar yang dibuat diberi tag “terbaru”. Jika Anda ingin mengubah tag, seperti "pengembangan", format perintah sebagai berikut:

    docker build ~/mydockerbuild -f apache_dockerfile -t apache_image:development
    

Menjalankan Gambar Docker Anda sebagai Container

Saat Anda menjalankan docker run perintah, Anda meluncurkan wadah Docker yang terkait dengan sesi terminal Anda. Ini juga disebut sebagai menjalankan proses di latar depan . Saat proses root Anda berada di latar depan dan terikat ke sesi terminal, wadah Anda keluar segera setelah Anda menutup sesi terminal. Jika Anda ingin wadah Anda berjalan bahkan setelah sesi terminal Anda ditutup, Anda dapat menjalankan wadah Anda di terpisah mode. Ini menjalankan wadah Anda di latar belakang .

Untuk menjalankan image Docker sebagai container dalam mode terpisah:

  1. Masukkan perintah berikut untuk membangun sebuah wadah bernama apache dengan gambar Anda, menggunakan -d argumen untuk memastikan penampung Anda berjalan di latar belakang:

    docker run --name apache -d apache_image
    
  2. Setelah Anda kembali ke command prompt, jalankan perintah berikut untuk membuat daftar container aktif Anda dan konfirmasikan apache berjalan di latar belakang:

    docker ps
    
    CONTAINER ID   IMAGE          COMMAND                  CREATED         STATUS         PORTS     NAMES
    1d5e1da50a86   apache_image   "apache2ctl -D FOREG…"   3 minutes ago   Up 3 minutes   80/tcp    apache
  3. Sekarang Anda dapat melakukan pekerjaan pengembangan dengan server Apache dan masih memiliki akses ke baris perintah. Namun, penampung Anda tidak dapat diakses secara publik karena tidak memiliki konfigurasi port tambahan. Di bagian berikutnya, Anda akan membangun kembali wadah dengan konfigurasi port yang memungkinkan Anda mengakses server web. Untuk saat ini, hentikan penampung:

    docker stop apache
    
    Catatan Anda dapat memasukkan ID penampung sebagai pengganti apache pada perintah di atas.
  4. Masukkan docker ps lagi untuk memastikan semua apache your penampung tidak lagi berjalan.

  5. Sekarang penampung telah dihentikan, Anda dapat menghapusnya:

    docker rm apache
    
Hati-hati

Menghapus wadah dengan cara ini akan menghapus semua data di dalam wadah. Jika Anda telah membuat penyesuaian yang ingin Anda bawa ke wadah baru, Anda dapat menggunakan docker commit untuk membuat gambar baru yang menyertakan pembaruan Anda:

docker commit apache apache_image_update

Kemudian, Anda dapat menerapkan wadah baru berdasarkan apache_image_update baru gambar di bagian berikutnya.

Konfigurasikan Port Docker Container Anda

Anda dapat menggunakan run opsi perintah untuk mengonfigurasi berbagai aspek penampung Anda. Saat container Anda berjalan pada host jarak jauh dan menyajikan aplikasinya, Anda dapat mengonfigurasi portnya untuk memaparkan aplikasi kepada pengguna.

Misalnya, Anda dapat mengonfigurasi apache wadah untuk menggunakan port host 8080 dan port kontainer 80 seperti contoh perintah dibawah ini. Perhatikan -d opsi yang digunakan dalam perintah untuk menjalankan container sebagai proses terpisah.

docker run --name apache -p 8080:80 -d apache_image

Sintaks umum untuk perintah ini adalah sebagai berikut:

docker run -–name <container name> -p <network port>:<container port> -d <container image label or ID>

Setiap parameter dijelaskan dalam daftar berikut:

  • <container name> :Nama wadah Docker
  • <host port> :Port host yang dipetakan ke port terbuka container
  • <container port> :Port tempat container Docker mendengarkan
  • <container image name> :Nama gambar Docker yang digunakan untuk penerapan Anda

Sekarang, navigasikan ke alamat IP Linode Anda di port host 8080 dengan menavigasi ke http://<your Linode's IP address>:8080 di peramban web. Anda akan melihat “Halaman Default Apache2 Ubuntu” yang disajikan dari wadah Docker Anda.

Hati-hati Saat men-deploy container dengan konfigurasi port, Docker juga dapat membuat aturan firewall host untuk mengizinkan akses publik ke container tersebut. Ini dapat menimpa atau bertentangan dengan aturan firewall host yang telah Anda konfigurasikan di Linode Anda.

Bacaan Lebih Lanjut

Panduan danCara Menggunakan File Docker untuk Membangun Gambar Docker ini membahas dasar-dasar penggunaan file Docker untuk membangun gambar dan wadah, tetapi mereka hampir tidak menggores permukaan dari apa yang dapat Anda capai dengan Docker. Untuk informasi lebih lanjut:

  • kunjungi dokumentasi Praktik Terbaik Dockerfile resmi untuk mengetahui lebih lanjut tentang Dockerfiles;

  • dan, terlepas dari namanya, panduan Memulai Docker adalah tutorial mendalam, yang mengarah ke panduan yang lebih mendalam, seperti menerapkan aplikasi ke cloud dan menyiapkan CI/CD (integrasi dan penerapan berkelanjutan).

Informasi Lebih Lanjut

Anda mungkin ingin berkonsultasi dengan sumber daya berikut untuk informasi tambahan tentang topik ini. Meskipun ini disediakan dengan harapan dapat bermanfaat, harap perhatikan bahwa kami tidak dapat menjamin keakuratan atau ketepatan waktu materi yang dihosting secara eksternal.

  • Praktik Terbaik untuk Menulis File Docker
  • Gambar Resmi Docker di Docker Hub
  • Dokumen Docker

Docker
  1. Cara Menggunakan Tulis Docker

  2. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  3. Bagaimana dan Mengapa Menggunakan Host Docker Jarak Jauh

  1. Cara Menghapus Semua Gambar Docker, Wadah, Volume, Jaringan, dan Sumber Daya yang Tidak Digunakan

  2. Cara Mengekspor dan Mengimpor Kontainer Docker

  3. Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04

  1. Cara Menginstal dan Menggunakan Docker Compose di CentOS

  2. Cara Menginstal Docker dan Menjalankan Wadah Docker di Ubuntu

  3. Cara mencadangkan dan memulihkan wadah Docker