Cara Membina dan Mengkonfigurasi Imej Docker Custom dengan Dockerfile - Bahagian 3
- 650
- 164
- Jerome Quitzon
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:
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
Penyelenggara
= Pengarang imej binaanJalankan
= Arahan ini boleh digunakan pada pelbagai baris dan menjalankan sebarang arahan setelah imej docker telah dibuat.Cmd
= Jalankan arahan apabila imej Docker dimulakan. Gunakan hanya satu arahan CMD dalam fail docker.Entrypoint
= Sama seperti CMD tetapi digunakan sebagai arahan utama untuk gambar.Dedahkan
= Mengarahkan bekas untuk mendengar di port rangkaian semasa berjalan. Pelabuhan kontena tidak dapat dicapai dari tuan rumah secara lalai.Env
= Tetapkan pembolehubah persekitaran kontena.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/dockerfileBuat 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 depanRepositori 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 ImagesSenaraikan 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 -apacheJalankan 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: 81Semak halaman Apache Container Docker
8. Untuk mendapatkan bahagian dalam proses apa yang berjalan di dalam bekas isu perintah berikut:
# Docker PS # Docker TopPeriksa 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 PSBeri nama kontena Docker
Sekarang anda boleh merujuk bekas untuk manipulasi (Mula, Berhenti, Atas, Statistik, dll) hanya dengan menggunakan nama yang diberikan.
# statistik docker my-wwwPantau 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- « Cara menjalankan pengedaran Linux terus dari cakera keras di Ubuntu menggunakan menu grub
- Cara memasang kemas kini keselamatan di Ubuntu »