Cara secara otomatis membangun dan mengonfigurasi gambar Docker khusus dengan DockerFile - Bagian 3

Cara secara otomatis membangun dan mengonfigurasi gambar Docker khusus dengan DockerFile - Bagian 3

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:

  1. 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 
  1. Pemeliharaan = Penulis gambar build
  2. BERLARI = Instruksi ini dapat digunakan pada beberapa baris dan menjalankan perintah apa pun setelah gambar Docker telah dibuat.
  3. Cmd = Jalankan perintah apa pun saat gambar Docker dimulai. Gunakan hanya satu instruksi CMD di Dockerfile.
  4. TITIK MASUK = Sama seperti CMD tetapi digunakan sebagai perintah utama untuk gambar.
  5. MEMBUKA = Menginstruksikan wadah untuk mendengarkan di port jaringan saat berjalan. Port kontainer tidak dapat dijangkau dari host secara default.
  6. Env = Atur variabel lingkungan kontainer.
  7. 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/dockerfile 
Buat 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 depan 
Repositori 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 Docker 
Daftar 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 -sapache 
Jalankan 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: 81 
Periksa halaman Docker Container Apache

8. Untuk mendapatkan bagian dalam dari proses apa yang berjalan di dalam masalah wadah perintah berikut:

# Docker PS # Docker Top  
Periksa 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 ps 
Berikan nama wadah Docker

Sekarang Anda dapat merujuk wadah untuk manipulasi (Start, Stop, Top, Stats, dll) hanya dengan menggunakan nama yang ditetapkan.

# statistik Docker my-www 
Monitor 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