Cara Membuat / Build Docker Image | Docker Tutorial Bahasa Indonesia
Isi kandungan:
- Perintah Jalankan Docker
- Jalankan Container di Foreground
- Jalankan Container dalam Mod Terterus
- Keluarkan Container Selepas Keluar
- Tetapkan Nama Kontena
- Penerbitan Pelabuhan Container
- Data Perkongsian (Volume Pemasangan)
- Jalankan Container Interactively
- Kesimpulannya
Docker adalah platform yang membolehkan anda membangun, menguji, dan menggunakan aplikasi sebagai bekas mudah alih, mandiri yang berjalan hampir di mana saja.
Perintah
docker run
membuat sebuah bekas dari imej yang diberikan dan memulakan kontena menggunakan arahan yang diberikan. Ini adalah salah satu perintah pertama yang perlu anda kenali ketika mula bekerja dengan Docker., kami akan menggunakan imej rasmi Nginx untuk menunjukkan pelbagai cara untuk menjalankan bekas Docker.
Perintah Jalankan Docker
Perintah yang
docker run
mengambil bentuk berikut:
docker run IMAGE
Nama imej dari mana bekas harus dicipta adalah satu-satunya hujah yang diperlukan untuk arahan
docker run
. Jika imej tidak ada pada sistem tempatan, ia akan ditarik dari pendaftaran.
Sekiranya tiada arahan ditentukan, arahan yang dinyatakan dalam arahan
CMD
atau
ENTRYPOINT
dijalankan semasa menjalankan bekas.
Bermula dari versi 1.13, Docker CLI telah disusun semula, dan semua arahan dikumpulkan di bawah objek yang mereka berinteraksi.
Memandangkan arahan
run
berinteraksi dengan bekas, kini ia merupakan
docker container
. Sintaks perintah baru adalah seperti berikut:
docker container run IMAGE
Yang lama, pra 1.13 sintaks masih disokong. Di bawah tudung, arahan
docker run
adalah alias kepada
docker container run
. Pengguna digalakkan untuk menggunakan sintaks arahan baru.
Senarai semua pilihan
docker container run
boleh didapati di halaman dokumentasi Docker.
Jalankan Container di Foreground
Secara lalai, apabila tiada pilihan diberikan kepada arahan
docker run
, proses root dimulakan di latar depan. Ini bermakna input, output, dan kesilapan standard dari proses akar dilampirkan pada sesi terminal.
docker container run nginx
Output proses nginx akan dipaparkan pada terminal anda. Oleh kerana, tiada sambungan ke pelayan web, terminal kosong.
Untuk menghentikan bekas, tamatkan proses Nginx yang sedang berjalan dengan menekan
CTRL+C
Jalankan Container dalam Mod Terterus
Untuk memastikan bekas berfungsi semasa anda keluar dari sesi terminal, mulailahnya dalam mod berasingan. Ini serupa dengan menjalankan proses Linux di latar belakang.
Gunakan pilihan
-d
untuk memulakan bekas terpisah:
docker container run -d nginx
050e72d8567a3ec1e66370350b0069ab5219614f9701f63fcf02e8c8689f04fa
Bekas berasingan akan berhenti apabila proses akar ditamatkan.
Anda boleh menyenaraikan kontena yang sedang berjalan menggunakan perintah
docker container ls
.
Untuk melampirkan terminal anda kepada proses akar kontena yang terpisah, gunakan perintah
docker container attach
.
Keluarkan Container Selepas Keluar
Secara lalai, apabila keluar bekas, sistem failnya tetap pada sistem tuan rumah.
Pilihan
--rm
memberitahu arahan
docker run
--rm
untuk mengeluarkan bekas ketika ia keluar secara automatik:
docker container run --rm nginx
Imej Nginx mungkin bukan merupakan contoh terbaik untuk membersihkan sistem fail bekas selepas bekas keluar. Pilihan ini biasanya digunakan pada bekas latar depan yang melakukan tugas jangka pendek seperti ujian atau backup pangkalan data.
Tetapkan Nama Kontena
Dalam Docker, setiap bekas dikenal pasti oleh
UUID
dan namanya. Secara lalai, jika tidak ditetapkan dengan jelas, nama kontena dihasilkan secara automatik oleh Docker daemon.
Gunakan pilihan nama - nama untuk memberikan nama tersuai kepada bekas:
docker container run -d --name my_nginx nginx
Nama kontena mestilah unik. Jika anda cuba untuk memulakan bekas lain dengan nama yang sama, anda akan mendapat ralat yang serupa dengan ini:
docker: Error response from daemon: Conflict. The container name "/my_nginx" is already in use by container "9…c". You have to remove (or rename) that container to be able to reuse that name.
Jalankan
docker container ls -a
untuk menyenaraikan semua bekas, dan lihat nama mereka:
docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 9d695c1f5ef4 nginx "nginx -g 'daemon of…" 36 seconds ago Up 35 seconds 80/tcp my_nginx
Nama-nama yang bermakna berguna untuk merujuk kontena dalam rangkaian Docker atau semasa menjalankan arahan CLI docker.
Penerbitan Pelabuhan Container
Secara lalai, jika tiada pelabuhan diterbitkan, proses yang berjalan di dalam bekas boleh diakses hanya dari dalam bekas.
Pelabuhan penerbitan bermaksud memetakan pelabuhan kontena ke port mesin tuan rumah supaya pelabuhan tersedia untuk perkhidmatan di luar Docker.
Untuk menerbitkan port, gunakan pilihan
-p
seperti berikut:
-p host_ip:host_port:container_port/protocol
- Sekiranya tiada
host_ip
ditentukan, ia menjadi lalai kepada0.0.0.0
. Sekiranya tiadaprotocol
yang ditetapkan, ia lalai kepada TCP. Untuk menerbitkan beberapa port, gunakan pelbagai pilihan-p
.
Untuk memetakan pelabuhan TCP 80 (nginx) di dalam bekas ke port 8080 pada antara muka localhost tuan rumah, anda akan menjalankan:
docker container run --name web_server -d -p 8080:80 nginx
Anda boleh mengesahkan bahawa port diterbitkan dengan membuka
http://localhost:8080
pada penyemak imbas anda atau menjalankan perintah
curl
berikut pada hos Docker:
curl -I
Output akan kelihatan seperti ini:
HTTP/1.1 200 OK Server: nginx/1.17.6 Date: Tue, 26 Nov 2019 22:55:59 GMT Content-Type: text/html Content-Length: 612 Last-Modified: Tue, 19 Nov 2019 12:50:08 GMT Connection: keep-alive ETag: "5dd3e500-264" Accept-Ranges: bytes
Data Perkongsian (Volume Pemasangan)
Apabila bekas dihentikan, semua data yang dihasilkan oleh bekas dikeluarkan. Volum Docker adalah cara yang lebih baik untuk membuat data berterusan dan membaginya di beberapa bekas.
Untuk membuat dan mengurus jumlah, gunakan pilihan
-p
seperti berikut:
-v host_src:container_dest:options
-
host_src
boleh menjadi jalan mutlak untuk fail atau direktori pada host atau volume bernama. Container_dest adalah jalan mutlak untuk file atau direktori pada container.Options dapatrw
(read-write) danro
(read-only). Sekiranya tiada pilihan ditentukan, ia mungkir kepadarw
.
Untuk menjelaskan bagaimana ini berfungsi, mari buat direktori di host dan letakkan
index.html
file di dalamnya:
mkdir public_html
echo "Testing Docker Volumes" > public_html/index.html
Seterusnya, masukkan direktori
public_html
ke dalam
/usr/share/nginx/html
dalam bekas:
docker run --name web_server -d -p 8080:80 -v $(pwd)/public_html:/usr/share/nginx/html nginx
Daripada menentukan laluan mutlak ke direktori
public_html
, kami menggunakan arahan
$(pwd)
, yang mencetak direktori kerja semasa.
Sekarang, jika anda menaip
http://localhost:8080
dalam pelayar anda, anda harus melihat kandungan fail
index.html
. Anda juga boleh menggunakan
curl
:
curl
Jalankan Container Interactively
Apabila berurusan dengan proses interaktif seperti
bash
, gunakan pilihan
-i
dan
-t
untuk memulakan bekas.
Opsyen
-it
memberitahu Docker untuk memastikan input standard dilampirkan pada terminal dan memperuntukkan pseudo-tty:
docker container run -it nginx /bin/bash
Kotak Bash bekas akan dilampirkan ke terminal, dan arahan arahan akan berubah:
root@1da70f1937f5:/#
Kini, anda boleh berinteraksi dengan shell bekas dan menjalankan sebarang arahan di dalamnya.
Dalam contoh ini, kami memberikan arahan (
/bin/bash
) sebagai hujah kepada arahan
docker run
yang dijalankan yang bukannya yang dinyatakan dalam Dockerfile.
Kesimpulannya
Docker adalah standard untuk pembungkusan dan penggunaan aplikasi dan komponen penting CI / CD, automasi, dan DevOps.
Perintah
docker container run
digunakan untuk membuat dan menjalankan kontainer Docker.
Amazon EC2 Memperluas 'contoh-contoh tersimpan' ke Eropah
Pilihan harga membolehkan pelanggan membayar di depan untuk merizab kuasa pengkomputeran
Perintah Echo di linux dengan contoh
Perintah echo adalah salah satu perintah yang paling asas dan kerap digunakan di Linux. Argumen-argumen yang dihantar kepada echo dicetak pada output standard.
Perintah Curl di linux dengan contoh
Curl adalah utiliti baris perintah untuk memindahkan data dari atau ke pelayan yang direka untuk berfungsi tanpa interaksi pengguna. Dalam tutorial ini, kami akan menunjukkan kepada anda cara menggunakan alat curl melalui contoh-contoh praktikal dan penjelasan terperinci tentang pilihan curl yang paling biasa.