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

Cara Membuat dan Mengonfigurasi Gambar Docker Kustom secara Otomatis dengan Dockerfile – Bagian 3

Tutorial ini akan berkonsentrasi pada cara membuat image Docker kustom berdasarkan Ubuntu dengan Apache layanan terpasang. Seluruh proses akan otomatis menggunakan Dockerfile .

Gambar Docker dapat dibuat secara otomatis dari file teks, bernama Dockerfiles . File Docker berisi instruksi atau perintah berurutan langkah demi langkah yang digunakan untuk membuat dan mengonfigurasi image Docker.

Persyaratan

  • Instal Docker dan Pelajari Manipulasi Kontainer Docker – Bagian 1
  • Menyebarkan dan Menjalankan Aplikasi di bawah Kontainer Docker – Bagian 2

Pada dasarnya, file Docker berisi berbagai instruksi untuk membangun dan mengonfigurasi wadah tertentu berdasarkan kebutuhan Anda. Instruksi berikut adalah yang paling sering digunakan, beberapa di antaranya wajib:

  1. FROM =Wajib sebagai instruksi pertama dalam file Docker. Menginstruksikan Docker untuk menarik gambar dasar dari mana Anda membangun gambar baru. Gunakan tag untuk menentukan gambar persis yang Anda buat:
Ex: FROM ubuntu:20.04
  1. MAINTAINER =Penulis gambar build
  2. RUN =Instruksi ini dapat digunakan pada banyak baris dan menjalankan perintah apa pun setelah image Docker dibuat.
  3. CMD =Jalankan perintah apa pun saat image Docker dimulai. Gunakan hanya satu instruksi CMD di Dockerfile.
  4. ENTRYPOINT =Sama seperti CMD tetapi digunakan sebagai perintah utama untuk gambar.
  5. EXPOSE =Menginstruksikan container untuk mendengarkan port jaringan saat dijalankan. Port container tidak dapat dijangkau dari host secara default.
  6. ENV =Setel variabel lingkungan penampung.
  7. ADD =Salin sumber daya (file, direktori, atau file dari URL).

Langkah 1:Membuat atau Menulis Repositori Dockerfile

1. Pertama, mari buat semacam Dockerfile repositori untuk menggunakan kembali file di masa mendatang untuk membuat gambar lain. Buat direktori kosong di suatu tempat di /var partisi tempat kita akan membuat file dengan instruksi yang akan digunakan untuk membangun image Docker yang baru.

# mkdir -p /var/docker/ubuntu/apache
# touch /var/docker/ubuntu/apache/Dockerfile

2. Selanjutnya, mulailah mengedit file dengan petunjuk berikut:

# vi /var/docker/ubuntu/apache/Dockerfile

Kutipan Dokerfile:

FROM ubuntu
MAINTAINER  your_name  <[email protected]>
RUN apt-get -y install apache2
RUN echo “Hello Apache server on Ubuntu Docker” > /var/www/html/index.html
EXPOSE 80
CMD /usr/sbin/apache2ctl -D FOREGROUND

Sekarang, mari kita lihat instruksi file:

Baris pertama memberitahu kita bahwa kita sedang membangun dari Ubuntu gambar. Jika tidak ada tag yang dikirimkan, ucapkan 14:10 misalnya, gambar terbaru dari Docker Hub digunakan.

Di baris kedua, kami telah menambahkan nama dan email dari pencipta gambar. Dua JALANKAN Next berikutnya baris akan dieksekusi dalam wadah saat membangun gambar dan akan menginstal Apache daemon dan gema beberapa teks ke halaman web apache default.

EKSPOSE baris akan menginstruksikan Docker container untuk mendengarkan pada port 80 , tetapi port tidak akan tersedia untuk luar. Baris terakhir menginstruksikan container untuk menjalankan layanan Apache di latar depan setelah container dimulai.

3. Hal terakhir yang perlu kita lakukan adalah mulai membuat image dengan mengeluarkan perintah di bawah ini, yang secara lokal akan membuat image Docker baru bernama ubuntu-apache berdasarkan Dockerfile yang dibuat sebelumnya, seperti yang ditunjukkan pada contoh ini:

# docker build -t ubuntu-apache /var/docker/ubuntu/apache/

4. Setelah gambar dibuat oleh Docker , Anda dapat membuat daftar semua gambar yang tersedia dan mengidentifikasi gambar Anda dengan mengeluarkan perintah berikut:

# docker images

Langkah 2:Jalankan Container dan Akses Apache dari LAN

5. Untuk menjalankan container secara terus-menerus (di latar belakang) dan mengakses layanan (port) container yang terpapar 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-apache

Di sini, -d opsi menjalankan ubuntu-apache wadah di latar belakang (sebagai daemon) dan -p opsi memetakan pelabuhan peti kemas 80 ke port localhost Anda 81 . Akses LAN luar ke layanan Apache dapat dicapai melalui port 81 saja.

Perintah Netstat akan memberi Anda gambaran tentang port apa yang didengarkan oleh host.

Setelah wadah dimulai, Anda juga dapat menjalankan docker ps perintah untuk melihat status container yang sedang berjalan.

6. Halaman web dapat ditampilkan di host Anda dari baris perintah menggunakan curl utilitas terhadap Alamat IP mesin Anda, localhost, atau antarmuka docker net pada port 81. Gunakan baris perintah IP untuk menampilkan alamat IP antarmuka jaringan.

# ip addr               [List nework interfaces]
# curl ip-address:81    [System Docker IP Address]
# curl localhost:81     [Localhost]

7. Untuk mengunjungi halaman web container dari jaringan Anda, buka browser di lokasi yang jauh dan gunakan protokol HTTP, Alamat IP mesin tempat container dijalankan, diikuti oleh port 81 seperti yang diilustrasikan pada gambar di bawah.

http://ip-address:81

8. Untuk mengetahui proses apa yang sedang berjalan di dalam container, jalankan perintah berikut:

# docker ps
# docker top <name or ID of the container>

9. Untuk menghentikan masalah kontainer docker stop perintah diikuti dengan ID atau nama wadah.

# docker stop <name or ID of the container>
# docker ps

10. Jika Anda ingin menetapkan nama deskriptif untuk wadah, gunakan --name pilihan seperti yang ditunjukkan pada contoh di bawah ini:

# docker run --name my-www -d -p 81:80 ubuntu-apache
# docker ps

Sekarang Anda dapat mereferensikan wadah untuk manipulasi (mulai, berhenti, teratas, statistik, dll) hanya dengan menggunakan nama yang ditetapkan.

# docker stats my-www

Langkah 3:Buat File Konfigurasi Seluruh Sistem untuk Docker Container

11. Di CentOS/RHEL Anda dapat membuat systemd file konfigurasi dan kelola container seperti yang biasa Anda lakukan untuk layanan lokal lainnya.

Misalnya, buat file systemd baru bernama, katakanlah, apache-docker.service menggunakan perintah berikut:

# vi /etc/systemd/system/apache-docker.service

apache-docker.service kutipan file:

[Unit]
Description=apache container
Requires=docker.service
After=docker.service

[Service]
Restart=always
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 mulai wadah dengan mengeluarkan perintah berikut:

# systemctl daemon-reload
# systemctl start apache-docker.service
# systemctl status apache-docker.service

Ini hanyalah contoh sederhana dari apa yang dapat Anda lakukan dengan Dockerfile sederhana tetapi Anda dapat membuat beberapa aplikasi yang cukup canggih yang dapat dijalankan hanya dalam hitungan detik dengan sumber daya dan usaha yang minimal.

Bacaan Lebih Lanjut:

Bagian 4 :Cara Memantau Wadah Docker di Linux
Docker
  1. Cara Menggunakan Dockerfile untuk Membangun Gambar Docker

  2. Cara Berbagi Gambar Docker Dengan Orang Lain

  3. Cara membuat Gambar Docker dari Wadah dan File Docker

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

  2. Cara Mengemas dan Mentransfer Gambar Docker Dari Satu Server ke Server Lainnya

  3. Cara Memodifikasi Gambar Docker

  1. Cara Membuat Gambar Docker dengan Dockerfile

  2. Cara membuat Gambar Docker dengan Dockerfile di Ubuntu 16.04 LTS

  3. Docker:Cara menggunakannya secara praktis - Bagian 3