Cara Membina dan Mengkonfigurasi Imej Docker Custom dengan Dockerfile - Bahagian 3

Cara Membina dan Mengkonfigurasi Imej Docker Custom dengan Dockerfile - Bahagian 3

Tutorial ini akan menumpukan perhatian kepada cara membina imej docker tersuai berdasarkan Ubuntu dengan Apache perkhidmatan dipasang. Keseluruhan proses akan automatik menggunakan a Dockerfile.

Imej Docker boleh dibina secara automatik dari fail teks, dinamakan Dockerfiles. Fail Docker mengandungi arahan atau arahan yang diperintahkan langkah demi langkah yang digunakan untuk membuat dan mengkonfigurasi gambar Docker.

Keperluan

  • Pasang Docker dan Belajar Manipulasi Container Docker - Bahagian 1
  • Menyebarkan dan menjalankan aplikasi di bawah bekas Docker - Bahagian 2

Pada asasnya, fail Docker mengandungi pelbagai arahan untuk membina dan mengkonfigurasi bekas tertentu berdasarkan keperluan anda. Arahan berikut adalah yang paling banyak digunakan, sesetengahnya menjadi wajib:

  1. Dari = Wajib sebagai arahan pertama dalam fail docker. Mengarahkan Docker untuk menarik imej asas dari mana anda sedang membina gambar baru. Gunakan tag untuk menentukan imej yang tepat dari mana anda sedang membina:
Cth: Dari Ubuntu: 20.04 
  1. Penyelenggara = Pengarang imej binaan
  2. Jalankan = Arahan ini boleh digunakan pada pelbagai baris dan menjalankan sebarang arahan setelah imej docker telah dibuat.
  3. Cmd = Jalankan arahan apabila imej Docker dimulakan. Gunakan hanya satu arahan CMD dalam fail docker.
  4. Entrypoint = Sama seperti CMD tetapi digunakan sebagai arahan utama untuk gambar.
  5. Dedahkan = Mengarahkan bekas untuk mendengar di port rangkaian semasa berjalan. Pelabuhan kontena tidak dapat dicapai dari tuan rumah secara lalai.
  6. Env = Tetapkan pembolehubah persekitaran kontena.
  7. TAMBAH = Sumber salinan (fail, direktori, atau fail dari URL).

Langkah 1: Membuat atau menulis repositori dockerfile

1. Pertama, mari buat beberapa jenis Dockerfile repositori untuk menggunakan semula fail pada masa akan datang untuk membuat imej lain. Buat direktori kosong di suatu tempat di /var Partition di mana kami akan membuat fail dengan arahan yang akan digunakan untuk membina imej Docker yang baru.

# mkdir -p/var/docker/ubuntu/apache # sentuh/var/docker/ubuntu/apache/dockerfile 
Buat repositori dockerfile

2. Seterusnya, mula mengedit fail dengan arahan berikut:

# vi/var/docker/ubuntu/apache/dockerfile 

Petikan Dokerfile:

Dari Ubuntu penyelenggara anda_name <[email protected]> Run Apt -Get -y Install Apache2 Run Echo "Hello Apache Server di Ubuntu Docker">/var/www/html/index.HTML mendedahkan 80 cmd/usr/sbin/apache2ctl -d latar depan 
Repositori Dockerfile

Sekarang, mari kita melalui arahan fail:

Baris pertama memberitahu kita bahawa kita sedang membina dari sebuah Ubuntu gambar. Sekiranya tiada tag dihantar, katakan 14:10 Contohnya, imej terkini dari Hab Docker digunakan.

Pada baris kedua, kami telah menambah nama dan e -mel pencipta gambar. Dua seterusnya Jalankan Talian akan dilaksanakan di dalam bekas ketika membina imej dan akan dipasang Apache Daemon dan echo Beberapa teks ke laman web Apache lalai.

The Dedahkan garis akan mengarahkan Docker bekas untuk mendengar di pelabuhan 80, Tetapi pelabuhan tidak boleh didapati di luar. Baris terakhir mengarahkan bekas untuk menjalankan perkhidmatan Apache di latar depan selepas bekas dimulakan.

3. Perkara terakhir yang perlu kita lakukan ialah mula membuat imej dengan mengeluarkan arahan di bawah, yang secara tempatan akan membuat imej docker baru bernama Ubuntu-APACHE Berdasarkan dockerfile yang dibuat sebelum ini, seperti yang ditunjukkan dalam contoh ini:

# Docker Build -t Ubuntu -Apache/Var/Docker/Ubuntu/Apache/ 
Buat imej Docker

4. Selepas imej telah dibuat oleh Docker, Anda boleh menyenaraikan semua imej yang tersedia dan mengenal pasti imej anda dengan mengeluarkan arahan berikut:

# Docker Images 
Senaraikan semua gambar Docker

Langkah 2: Jalankan bekas dan akses Apache dari LAN

5. Untuk menjalankan bekas secara berterusan (di latar belakang) dan mengakses perkhidmatan terdedah bekas (port) dari tuan rumah atau mesin jauh lain di LAN anda, jalankan arahan di bawah pada prompt terminal tuan rumah anda:

# docker run -d -p 81:80 Ubuntu -apache 
Jalankan gambar kontena Docker

Di sini, The -d Pilihan menjalankan Ubuntu-APACHE bekas di latar belakang (sebagai daemon) dan -p Pilihan Peta Pelabuhan Bekas 80 ke pelabuhan localhost anda 81. Di luar akses LAN ke perkhidmatan Apache boleh dicapai melalui pelabuhan 81 hanya.

Perintah Netstat akan memberi anda idea mengenai pelabuhan yang didengar oleh tuan rumah.

Selepas bekas telah dimulakan, anda juga boleh menjalankan Docker PS perintah untuk melihat status bekas yang sedang berjalan.

6. Laman web ini boleh dipaparkan pada hos anda dari baris arahan menggunakan curl utiliti terhadap alamat IP mesin, localhost, atau antara muka bersih docker di port 81. Gunakan baris arahan ip untuk menunjukkan alamat IP antara muka rangkaian.

# IP Addr [Senarai Interfaces Nework] # Curl IP-Address: 81 [Sistem Docker IP Alamat] # curl localhost: 81 [localhost] 
Semak antara muka rangkaian Docker dan alamat IP Semak laman web Docker Apache

7. Untuk melawat laman web kontena dari rangkaian anda, buka penyemak imbas di lokasi terpencil dan gunakan protokol HTTP, alamat IP mesin di mana bekas berjalan, diikuti oleh port 81 seperti yang digambarkan pada gambar di bawah.

http: // ip-address: 81 
Semak halaman Apache Container Docker

8. Untuk mendapatkan bahagian dalam proses apa yang berjalan di dalam bekas isu perintah berikut:

# Docker PS # Docker Top  
Periksa proses Docker yang dijalankan

9. Untuk menghentikan isu bekas Docker berhenti arahan diikuti oleh id atau nama bekas.

# Docker Stop # Docker PS 

10. Sekiranya anda ingin memberikan nama deskriptif untuk bekas gunakan --nama pilihan seperti yang ditunjukkan dalam contoh di bawah:

# Docker Run -Name my -www -d -p 81:80 Ubuntu -APache # Docker PS 
Beri nama kontena Docker

Sekarang anda boleh merujuk bekas untuk manipulasi (Mula, Berhenti, Atas, Statistik, dll) hanya dengan menggunakan nama yang diberikan.

# statistik docker my-www 
Pantau penggunaan kontena Docker

Langkah 3: Buat fail konfigurasi seluruh sistem untuk Docker Container

11. Pada Centos/RHEL anda boleh membuat a sistemd fail konfigurasi dan menguruskan bekas seperti yang biasanya anda lakukan untuk perkhidmatan tempatan yang lain.

Contohnya, buat fail sistem baru yang dinamakan, katakanlah, Apache-Docker.perkhidmatan Menggunakan arahan berikut:

# VI/etc/Systemd/System/Apache-Docker.perkhidmatan 

Apache-Docker.perkhidmatan Petikan fail:

[Unit] Keterangan = Apache Container Memerlukan = Docker.Perkhidmatan selepas = Docker.perkhidmatan [perkhidmatan] restart = selalu execstart =/usr/bin/docker start -a my -www execstop =/usr/bin/docker stop -t 2 my -www [install] wanty = local.sasaran 

12. Selepas anda selesai mengedit fail, tutupnya, muat semula daemon Systemd untuk mencerminkan perubahan dan mulakan bekas dengan mengeluarkan arahan berikut:

# Systemctl Daemon-Reload # Systemctl Mula Apache-Docker.Perkhidmatan # Systemctl Status Apache-Docker.perkhidmatan 

Ini hanyalah contoh mudah dari apa yang boleh anda lakukan dengan mudah Dockerfile Tetapi anda boleh membina beberapa aplikasi yang cukup canggih yang boleh anda buat dalam beberapa saat dengan sumber dan usaha yang minimum.

Bacaan lanjut:

Bahagian 4: Cara memantau bekas Docker di Linux