Cara secara otomatis membangun dan mengonfigurasi gambar Docker khusus dengan DockerFile - Bagian 3
- 4656
- 591
- Hector Kuhic
Tutorial ini akan berkonsentrasi pada cara membangun gambar Docker khusus berdasarkan Ubuntu dengan Apache layanan terpasang. Seluruh proses akan otomatis menggunakan a Dockerfile.
Gambar Docker dapat secara otomatis dibangun dari file teks, bernama Dockerfile. File Docker berisi instruksi atau perintah yang dipesan langkah demi langkah yang digunakan untuk membuat dan mengonfigurasi gambar Docker.
Persyaratan
- Instal Docker dan Belajar Manipulasi Kontainer Docker - Bagian 1
- Menyebarkan dan menjalankan aplikasi di bawah wadah Docker - Bagian 2
Pada dasarnya, file Docker berisi berbagai instruksi untuk membangun dan mengonfigurasi wadah tertentu berdasarkan kebutuhan Anda. Instruksi berikut adalah yang paling banyak digunakan, beberapa di antaranya wajib:
DARI
= Wajib sebagai instruksi pertama dalam file Docker. Menginstruksikan Docker untuk menarik gambar dasar tempat Anda membangun gambar baru. Gunakan tag untuk menentukan gambar yang tepat tempat Anda membangun:
Mis: dari Ubuntu: 20.04
Pemeliharaan
= Penulis gambar buildBERLARI
= Instruksi ini dapat digunakan pada beberapa baris dan menjalankan perintah apa pun setelah gambar Docker telah dibuat.Cmd
= Jalankan perintah apa pun saat gambar Docker dimulai. Gunakan hanya satu instruksi CMD di Dockerfile.TITIK MASUK
= Sama seperti CMD tetapi digunakan sebagai perintah utama untuk gambar.MEMBUKA
= Menginstruksikan wadah untuk mendengarkan di port jaringan saat berjalan. Port kontainer tidak dapat dijangkau dari host secara default.Env
= Atur variabel lingkungan kontainer.MENAMBAHKAN
= Salin Sumber Daya (File, Direktori, atau File dari URL).
Langkah 1: Membuat atau menulis repositori DockerFile
1. Pertama, mari kita buat beberapa jenis Dockerfile repositori untuk menggunakan kembali file di masa depan untuk membuat gambar lain. Membuat direktori kosong di suatu tempat di /var
Partisi di mana kami akan membuat file dengan instruksi yang akan digunakan untuk membangun gambar Docker yang baru.
# mkdir -p/var/docker/ubuntu/apache # touch/var/docker/ubuntu/apache/dockerfileBuat repositori DockerFile
2. Selanjutnya, mulailah mengedit file dengan instruksi berikut:
# vi/var/docker/ubuntu/apache/dockerfile
Kutipan Dokerfile:
Dari ubuntu coquest your_name <[email protected]> Jalankan apt -get -y instal apache2 run echo “hello apache server di ubuntu docker”>/var/www/html/index.html mengekspos 80 cmd/usr/sbin/apache2ctl -d latar depanRepositori Dockerfile
Sekarang, mari kita pergi melalui instruksi file:
Baris pertama memberi tahu kita bahwa kita sedang membangun dari Ubuntu gambar. Jika tidak ada tag yang dikirimkan, katakanlah 14:10 Misalnya, gambar terbaru dari Hub Docker digunakan.
Di baris kedua, kami telah menambahkan nama Dan surel dari pencipta gambar. Dua berikutnya BERLARI baris akan dieksekusi dalam wadah saat membangun gambar dan akan menginstal Apache Daemon dan gema Beberapa teks ke halaman web Apache default.
Itu MEMBUKA baris akan menginstruksikan Docker wadah untuk mendengarkan di port 80, Tapi port tidak akan tersedia untuk di luar. Baris terakhir menginstruksikan wadah untuk menjalankan layanan Apache di latar depan setelah wadah dimulai.
3. Hal terakhir yang perlu kita lakukan adalah mulai membuat gambar dengan mengeluarkan perintah di bawah ini, yang secara lokal akan membuat gambar Docker baru bernama Ubuntu-Apache
Berdasarkan DockerFile yang dibuat sebelumnya, seperti yang ditunjukkan dalam contoh ini:
# Docker Build -t Ubuntu -Apache/Var/Docker/Ubuntu/Apache/Buat gambar Docker
4. Setelah gambar dibuat oleh Buruh pelabuhan, Anda dapat mendaftar semua gambar yang tersedia dan mengidentifikasi gambar Anda dengan mengeluarkan perintah berikut:
# Gambar DockerDaftar semua gambar Docker
Langkah 2: Jalankan wadah dan akses Apache dari LAN
5. Untuk menjalankan wadah terus menerus (di latar belakang) dan mengakses Layanan Terkena Wadah (port) dari host atau mesin jarak jauh lainnya di LAN Anda, jalankan perintah di bawah ini pada prompt terminal host Anda:
# Docker run -d -p 81:80 ubuntu -sapacheJalankan gambar wadah Docker
Di sini, -D
Opsi menjalankan Ubuntu-Apache
wadah di latar belakang (sebagai daemon) dan -P
Opsi memetakan port kontainer 80 ke port localhost Anda 81. Akses LAN di luar layanan Apache dapat dicapai melalui port 81 hanya.
Perintah Netstat akan memberi Anda gambaran tentang port apa yang didengarkan host.
Setelah wadah dimulai, Anda juga dapat berlari Docker PS
Perintah untuk melihat status wadah yang berjalan.
6. Halaman web dapat ditampilkan di host Anda dari baris perintah menggunakan keriting Utilitas Terhadap Alamat IP Mesin Anda, LocalHost, atau Antarmuka Net Docker di Port 81. Gunakan baris perintah IP untuk menampilkan alamat IP antarmuka jaringan.
# ip addr [daftar antarmuka nework] # curl ip-address: 81 [Alamat IP System Docker] # Curl LocalHost: 81 [LocalHost]Periksa antarmuka jaringan Docker dan alamat IP Periksa halaman web Docker Apache
7. Untuk mengunjungi halaman web kontainer dari jaringan Anda, buka browser di lokasi jarak jauh dan gunakan protokol HTTP, alamat IP mesin tempat wadah berjalan, diikuti oleh port 81 seperti yang diilustrasikan pada gambar di bawah ini.
http: // ip-address: 81Periksa halaman Docker Container Apache
8. Untuk mendapatkan bagian dalam dari proses apa yang berjalan di dalam masalah wadah perintah berikut:
# Docker PS # Docker TopPeriksa proses Docker yang sedang berjalan
9. Untuk menghentikan masalah kontainer Docker Stop
Perintah diikuti oleh ID atau nama kontainer.
# Docker Stop # Docker PS
10. Jika Anda ingin menetapkan nama deskriptif untuk wadah menggunakan --nama
opsi seperti yang ditunjukkan pada contoh di bawah ini:
# Docker Run --Name my -www -d -p 81:80 ubuntu -apache # docker psBerikan nama wadah Docker
Sekarang Anda dapat merujuk wadah untuk manipulasi (Start, Stop, Top, Stats, dll) hanya dengan menggunakan nama yang ditetapkan.
# statistik Docker my-wwwMonitor pemanfaatan wadah Docker
Langkah 3: Buat file konfigurasi di seluruh sistem untuk wadah Docker
11. Pada Centos/rhel Anda dapat membuat file Systemd file konfigurasi dan kelola wadah seperti yang biasanya Anda lakukan untuk layanan lokal lainnya.
Misalnya, buat file SystemD baru bernama, katakanlah, Apache-Docker.melayani
Menggunakan perintah berikut:
# vi/etc/systemd/system/apache-docker.melayani
Apache-Docker.melayani Kutipan file:
[Unit] deskripsi = wadah apache membutuhkan = docker.Layanan setelah = Docker.Layanan [Layanan] restart = selalu execStart =/usr/bin/docker start -a my -www execstop =/usr/bin/docker stop -t 2 my -www [install] wantedby = local.target
12. Setelah Anda selesai mengedit file, tutup, muat ulang daemon SystemD untuk mencerminkan perubahan dan memulai wadah dengan mengeluarkan perintah berikut:
# Systemctl Daemon-Reload # Systemctl Mulai Apache-Docker.Layanan # Systemctl Status Apache-Docker.melayani
Ini hanyalah contoh sederhana dari apa yang dapat Anda lakukan dengan yang sederhana Dockerfile Tetapi Anda dapat membuat pra-membangun beberapa aplikasi yang cukup canggih sehingga Anda dapat menembak hanya dalam hitungan detik dengan sumber daya dan upaya minimal.
Bacaan lebih lanjut:
Bagian 4: Cara memantau wadah Docker di Linux- « Cara menjalankan distribusi linux langsung langsung dari hard disk di ubuntu menggunakan menu grub
- Cara menginstal pembaruan keamanan di ubuntu »