Pengantar
Docker memainkan peran yang sangat penting baik sebagai format pengemasan untuk aplikasi maupun antarmuka dan metodologi pemersatu yang memungkinkan tim aplikasi memiliki image container berformat Docker (Catatan:Diasumsikan bahwa termasuk semua dependensi). Ini telah menjadikan Docker sebagai salah satu pelopor terdepan dalam layanan mikro dan adaptasi dan penggunaan berbasis layanan mikro.
Banyak utilitas berbasis Docker dan Docker membantu kami menghadirkan efisiensi skalabilitas dan kinerja yang lebih besar dengan mengecilkan jejak aplikasi melalui Dockerized kontainer. Dalam banyak kasus, ketergantungan tingkat sistem dikurangi menjadi minimum, yang membantu mengurangi penggunaan memori dalam hal MB (Mega byte).
Semua aspek ini membantu menjadikan Docker sebagai salah satu utilitas berbasis kontainer terkemuka. Docker memiliki banyak utilitas dan kemampuan baris perintah. Docker Daemon dapat menyediakan banyak dari fasilitas tambahan ini dan yang membuat konfigurasi Docker lebih mudah.
Baca Juga :Cara Instal Docker (Edisi Komunitas) di Ubuntu 16.04 / 18.04 LTS
Semoga pembaca/pengguna artikel ini tahu cara spin-off docker-container di lingkungan Linux apa pun. Dengan asumsi ini, beberapa fasilitas berikut dijelaskan,
Beberapa fasilitas ini dapat digunakan untuk fungsi berikut,
- Periksa informasi server Docker
- Unduh gambar dan pembaruan buruh pelabuhan
- Periksa kontainer
- Melihat dan memantau log
- Pantau berbagai statistik dan detail
1) Cara memeriksa versi buruh pelabuhan saat ini
Mengetahui versi buruh pelabuhan adalah salah satu aspek yang sangat penting karena bergantung pada ini, banyak keputusan berbasis versi yang diambil.
[email protected]:~$ sudo docker versionClient: Version: 18.09.5 API version: 1.39 Go version: go1.10.8 Git commit: e8ff056 Built: Apr 11 2019 amd64 Eksperimental: falseServer:Docker Engine - Community Engine: Version: 18.09.5 API version: 1.39 (minimum version 1.12) Go version: go1.10.8 Git commit: :10 e8ff056 Dibangun 04 Arch 04 Apr 2019 linux/amd64 Eksperimental: false[email protected]:~$
Output di atas ini menyediakan versi API server dan klien sebagai sama dan versi OS dan Arsitektur juga harus sama. Jika ada ketidakcocokan dalam versi berbasis klien dan server, komunikasi klien-server akan gagal. Kita harus memastikan apa versi pendukungnya dan mengambil keputusan yang sesuai.
2) Menangkap dan menganalisis informasi server
Menggunakan info buruh pelabuhan kami juga dapat menemukan informasi berikut. Beberapa informasi berguna yang dapat kami kumpulkan adalah seperti, server mana yang berjalan sebagai backend, versi kernelnya, direktori root OS dan Docker mana, dll
[email protected]:~$ sudo docker infoContainers:2 Running:1 Paused:0 Stopped:1Images:4Server Version:18.09.5Storage Driver:overlay2 Backing Filesystem:extfs Mendukung d_type:true Native Overlay Diff:trueLogging Driver:json -fileCgroup Supir:cgroupfsPlugins:Volume:Jaringan lokal:jembatan tuan macvlan nol overlay Log:awslogs fluentd gcplogs gelf journald json-file yang logentries lokal splunk syslogSwarm:inactiveRuntimes:runcDefault Runtime:runcInit Binary:versi buruh pelabuhan-initcontainerd:versi bb71b10fd8f58240ca47fbb579b9d1028eea7c84runc:versi 2b18fe1d885ee5083ef9f0838fee39b62d653e30init:fec3683Opsi Keamanan: apparmor seccomp Profil:defaultKernel Versi:4.15.0-20-genericSistem Operasi:Ubuntu 18.04 LTSOSTipe:linuxArsitektur:x86_64CPU:1Total Memori:1.947GiBNama:linuxtechiID:VRUY:AWXX:7JWE:YWU:7:PNX4 :QFGI:XYRQ:QUXF:MTXCDocker Root Dir:/var/lib/dockerDebug Mode (klien):falseDebug Mode (server):falseRegistry:https://index.docker.io/ v1/Labels:Experimental:falseInsecure Registries: 127.0.0.0/8Live Restore Diaktifkan:falseProduct License:Community EngineWARNING:Tidak ada dukungan batas swap[dilindungi email]:~$
Semua informasi di atas didasarkan pada bagaimana Docker Daemon diatur, versi OS yang mendasarinya, dan jenis sistem file. Semua ini dapat ditangkap menggunakan rangkaian perintah berikut,
Jalankan perintah di bawah ini untuk mendapatkan Nama OS, versinya, dan Nama kode
[email protected]:~$ cat /etc/lsb-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"[email protected]:~$
atau
[dilindungi email]:~$ cat /etc/*-releaseDISTRIB_ID=UbuntuDISTRIB_RELEASE=18.04DISTRIB_CODENAME=bionicDISTRIB_DESCRIPTION="Ubuntu 18.04 LTS"NAME="Ubuntu"VERSION="18.04 LTS (Bionic Beaver)"ID=ubuntudebianPRKE_ubuntuID_LI ="Ubuntu 18.04 LTS"VERSION_ID="18.04"HOME_URL="https://www.ubuntu.com/"SUPPORT_URL="https://help.ubuntu.com/"BUG_REPORT_URL="https://bugs.launchpad. net/ubuntu/"PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"VERSION_CODENAME=bionicUBUNTU_CODENAME=bionic[email protected]:~$
Jalankan perintah di bawah ini untuk mendapatkan detail sistem file:
[dilindungi email]:~$ mount | grep "^/dev"/dev/sda1 on / ketik ext4 (rw,relatime,errors=remount-ro,data=ordered)[email protected]:~$
3) daemon Docker
Daemon buruh pelabuhan memainkan peran yang sangat penting dalam lingkungan buruh pelabuhan secara keseluruhan.
Tanpa daemon yang tepat, sistem buruh pelabuhan yang lengkap tidak akan berguna. Seseorang dapat memverifikasi status daemon menggunakan perintah berikut,
Catatan :- Dengan asumsi instalasi buruh pelabuhan yang tepat selesai
[email protected]:~$ sudo service docker status
Jika layanan buruh pelabuhan sedang berjalan, maka output dari perintah di atas harus seperti di bawah ini:
Jika layanan buruh pelabuhan tidak berjalan maka gunakan perintah di bawah ini untuk memulainya
[email protected]:~$ sudo systemctl start dockeror[email protected]:~$ sudo service docker start[email protected]:~$
Gunakan di bawah “docker ps ” perintah untuk membuat daftar container yang sedang berjalan
[email protected]:~$ sudo docker psCONTAINER ID IMAGE COMMAND DIBUAT STATUS >dilindungi emailUntuk membuat daftar semua container yang berjalan dan dihentikan, gunakan “docker ps -a ”
[Email dilindungi]:~ $ sudo docker ps -acontainer ID gambar yang dibuat status port names497e6733d760 ubuntu "bash" 19 menit yang lalu keluar (0) 288888888817188 ) 19 menit yang lalu vivid_shannon[email protected]:~$Direktori root default Docker adalah “/var/lib/docker”
[email protected]:~$ sudo ls -l /var/lib/dockertotal 48drwx------ 2 root root 4096 14 Apr 07:00 builderdrwx------ 4 root root 4096 14 Apr 07 :00 buildkitdrwx------ 4 root root 4096 14 Apr 07:09 containersdrwx------ 3 root root 4096 14 Apr 07:00 imagedrwxr-x--- 3 root root 4096 14 Apr 07:00 networkdrwx ------ 16 root root 4096 14 Apr 07:27 overlay2drwx------ 4 root root 4096 14 Apr 07:00 pluginsdrwx------ 2 root root 4096 14 Apr 07:27 runtimesdrwx-- ---- 2 root root 4096 14 Apr 07:00 swarmdrwx------ 2 root root 4096 14 Apr 07:27 tmpdrwx------ 2 root root 4096 14 Apr 07:00 trustdrwx---- -- 2 root root 4096 14 Apr 07:00 volume[email protected]:~$Daemon buruh pelabuhan jika belum dimulai dapat dipanggil menggunakan perintah berikut,
[email protected]:~$ sudo dockerdOutput dari dockerd di atas perintahnya akan seperti di bawah ini:
Baca Juga :Cara menginstal Docker di CentOS 7
4) Mengunduh image container buruh pelabuhan dan memeriksa container
[email protected]:~ $ sudo buruh pelabuhan tarik ubuntu:latestUsing tag default:latestlatest:Menarik dari perpustakaan / ubuntu898c46f3b1a1:Pull complete63366dfa0a50:Pull complete041d4cd74a92:Pull complete6e1bee0f8701:Pull completeDigest:SHA256:017eef0b616011647b269b5c65826e2e2ebddbe5d1f8c1e56b3599fb14fabec8Status:download gambar baru untuk ubuntu:terbaru [email dilindungi]:~$latest:Menarik dari perpustakaan/ubuntu898c46f3b1a1:Tarik selesai63366dfa0a50:Tarik selesai041d4cd74a92:Tarik selesai6e1bee0f8701:Tarik selesai Intisari:sha256:017eef0b616011647b269b5e1bee0f8701:Unduhan lengkapIsinya:sha256:017eef0b616011647b269b5deb5c65826eMeluncurkan wadah, contoh ditunjukkan di bawah ini
[Dilindungi Email]:~ $ sudo docker run -d-ted ubuntu / bin / bash58c023f0f5689F0F56893.CA8C985936A8C9DD91D08E8421300FACB64724 [Email dilindungi]:~ $ sudo docker pscontainer ID gambar Image Buatan names58C023F0F568 Ubuntu "/ bin /bash" 27 detik yang lalu Naik 26 detik boring_dijkstra[email protected]:~$Mari kita periksa wadah ini menggunakan perintah berikut,
[email protected]:~$ sudo docker inspect 58c023f0f568[ { "Id":"58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724", " "Buat" ", "Args":[], "State":{ "Status":"running", "Running":true, "Paused":false, mulai false, "Pid":15538, "ExitCode":0, "Error":"", "StartedAt":"2019-04-14T06:55:27.14 01 Z" :00Z "}, "Image":"SHA256:94e814e2efa8845d95b2112d54497fbad173e45121ce9255b93401392f538499", "ResolvConfPath":" /var/lib/docker/containers/58c023f0f5689ff08b858221ca10c985936a8c9dd91d08e84213009facb64724/resolv.conf",.......................................... …………Catatan:- Output lengkap dari perintah ini tidak ditampilkan di sini, karena outputnya terlalu besar
5) Masuk ke dalam image container yang sedang berjalan
Seperti yang diketahui bahwa Docker awalnya menggunakan semua yang didasarkan pada backend LXC, perintah lxc-attach dari linux digunakan untuk beberapa waktu. Tapi begitu buruh pelabuhan dibangun sebagai paket mandiri dan mulai menggunakan “libcontainer ” sebagai backend default, penggunaan perintah “docker exec” menjadi populer
Kumpulan perintah di bawah ini menjelaskan tentang cara masuk ke wadah menggunakan baris perintah,
:~$ sudo docker exec -t
[email protected]:~$ sudo docker exec -t 58c023f0f568 ls -a. .dockerenv boot dll lib media opt root sbin sys usr .. bin dev rumah lib64 mnt proc run srv tmp var [email terlindungi]:~ $ sudo docker exec -t 58c023f0f568 ps -efuid pid ppid c stime tty waktu cmdroot 1 0 0 06 :55 pts/0 00:00:00 /bin/bashroot 20 0 0 07:17 pts/1 00:00:00 ps -ef[email protected]:~$Cara alternatif untuk menjalankan perintah di dalam container adalah, login terlebih dahulu ke container menggunakan “docker attach ” lalu jalankan perintah
:~$ Sudo docker lampirkan
[email protected]:~$ sudo docker attach 58c023f0f568[email protected]:/#Ada beberapa situasi di mana Anda ingin meluncurkan wadah, melampirkan volume padanya dan ketika kita keluar dari wadah itu harus dihapus secara otomatis, contoh ditunjukkan di bawah ini
[email protected]:~$ sudo docker run -it --rm -v /usr/local/bin:/target jpetazzo/nsenter bash[email protected]:/src# df -h /target/Filesystem Ukuran Digunakan Avail Use% Dipasang di/dev/sda1 18G 5.6G 12G 34% /target[email protected]:/src# exitexit[email protected]:~$Sekarang verifikasi apakah buruh pelabuhan dihapus atau tidak secara otomatis ketika kita keluar dari wadah, jalankan “docker ps”
[email terlindungi]:~ $ sudo docker pscontainer id image command dibuat status port names58c023f0f568 ubuntu "/ bin / bash" sekitar satu jam yang lalu sekitar satu jam boring_dijkstra [$ pre>:~ $:~ $6) Memantau Docker
Gunakan “statistik buruh pelabuhan ” perintah untuk menampilkan pemanfaatan sumber daya dari semua wadah,
[Email terlindungi]:~ $ sudo docker statscontainer ID Nama CPU% MEM Penggunaan / Batas MEM% NET I / O PIDS58C023F0F568 BORING_DIJKSTRA 0,00% 1.059MIB / 1.947GB / 0B 4,74MB / 0B 1 Kontainer ID Nama CPU% MEM Penggunaan / Batas MEM% Net I / O Block I / O PIDS58C023F0F568 BORING_DIJKSTRA 0,00% 1.059MIB / 1.947GIB 0.05% 4.75KB / 0B 1 [1 EMACT>:~ $ 17) Acara Docker
Sering kali menangkap peristiwa buruh pelabuhan akan menjadi penting karena ini akan memberikan informasi tentang berbagai operasi buruh pelabuhan dan peristiwa yang terjadi. Di bawah ini adalah cuplikannya.
[dilindungi email]:~$ sudo docker events2019-04-14T09:29:07.636990738+01:00 tarik gambar wordpress:latest (name=wordpress)2019-04-14T09:29:46.936676431+01:00 buat volume 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (driver =lokal) 2019-04-14T09:29:46,998798935 + 01:00 kontainer membuat b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, nama =friendly_heisenberg) 2019-04-14T09:29:47,000202026 + 01:00 kontainer melampirkan b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image =wordpress, nama =friendly_heisenberg) 2019-04-14T09:29:47,209257002 + 01:00 jaringan connect 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (container =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, nama =jembatan, jenis =jembatan) 2019-04-14T09:29:47,239846902 + 01:00 volume mount 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (wadah=b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, tujuan=/va r/www/html, driver=local, propagation=, read/write=true)2019-04-14T09:29:47.942997316+01:00 container start b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (image_=wordpress, nama) 29:47,944521098 + 01:00 kontainer resize b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (height =39, image =wordpress, nama =friendly_heisenberg, width =130) 2019-04-14T09:29:59,829378089 + 01:00 kontainer die b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058 (ExitCode =0, =gambar wordpress, nama =friendly_heisenberg) 2019-04-14T09:30:00.147435896 + 01:00 jaringan putuskan 18dd93c3c6fc9ce51a98f7d2359b319db251efcae6b991157965ef727a580702 (container =b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, nama =jembatan, jenis =jembatan) 2019-04-14T09:30:00.845336887 + 01:00 Volume unmount 36187e0a44d277439fea0df2446fc44987fa814c52744091929e5c81bd8134e5 (wadah=b97f6a565c518eb1464cf81e6e09db1acfd84a0fdcbaea94255f1f182d79c058, driver=local)……… ………Kesimpulan
Kombinasi dari semua perintah dan utilitas ini sangat penting dalam membuat docker dan container menjadi lingkungan berbasis layanan mikro yang sukses. Karena banyak arsitektur layanan mikro memerlukan utilitas semacam ini untuk men-debug, memahami, dan mempelajari lebih lanjut tentangnya untuk penggunaan sehari-hari, saya harap artikel ini akan berperan dalam membantu kasus seperti itu.
Baca Juga :Cara menginstal dan menggunakan docker-compose untuk menyebarkan container di CentOS 7
Pantau dan Kelola Kontainer Docker dengan Portainer.io (alat GUI) – Bagian-1 Cara Menjalankan Jenkins Container sebagai Layanan Systemd dengan DockerDocker