
Docker adalah suatu aplikasi yang menyederhanakan proses pengelolaan proses aplikasi di dalam kontainer. Kontainer memungkinkan Anda menjalankan aplikasi di dalam proses yang terisolasi sumber daya. Kontainer mirip seperti mesin virtual, tetapi kontainer lebih portabel, lebih ramah sumber daya, dan lebih bergantung pada sistem operasi hos.
Untuk pengantar mendetail tentang beragam komponen berbeda dari kontainer Docker, silakan baca The Docker Ecosystem: An Introduction to Common Components.
Dalam tutorial ini, Anda akan menginstal dan menggunakan Docker Community Edition (CE) pada Ubuntu 20.04. Anda akan menginstal Docker sendiri, bekerja dengan kontainer dan citra, serta mendorong citra ke Repositori Docker.
Prasyarat
Untuk mengikuti tutorial ini, Anda membutuhkan hal berikut ini:
- Satu server Ubuntu 20.04 yang disiapkan dengan mengikuti panduan penyiapan server awal Ubuntu 20.04 berikut ini, termasuk penggguna non-root sudo dan firewall.
- Satu akun di Docker Hub jika Anda ingin menciptakan citra sendiri dan mendorongnya ke Docker Hub, seperti yang diperlihatkan dalam Langkah 7 dan 8.
Langkah 1 — Menginstal Docker
Paket instalasi Docker yang tersedia di repositori Ubuntu resmi mungkin bukan versi terbaru. Untuk memastikan kita mendapat versi terbaru, kita akan menginstal Docker dari repositori Docker resmi. Untuk melakukan itu, kita akan menambah satu sumber paket baru, menambah kunci GPG dari Docker untuk memastikan unduhannya valid, lalu menginstal paket itu.
Pertama, perbarui daftar paket Anda saat ini:
Selanjutnya, instal beberapa paket prasyarat yang memungkinkan apt
menggunakan paket lewat HTTPS:
Lalu tambahkan kunci GPG untuk repositori Docker resmi ke sistem Anda:
Tambahkan repositori Docker ke sumber APT:
Selanjutnya, perbarui basis data paket dengan paket Docker dari repo yang baru ditambahkan:
Pastikan Anda akan menginstal dari repo Docker alih-alih repo Ubuntu asali:
Anda akan melihat keluaran seperti ini, meskipun nomor versi untuk Docker mungkin berbeda:
docker-ce: Installed: (none) Candidate: 5:19.03.9~3-0~ubuntu-focal Version table: 5:19.03.9~3-0~ubuntu-focal 500 500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
Perhatikan bahwa docker-ce
belum terinstal, tetapi kandidat untuk instalasi adalah dari repositori Docker untuk Ubuntu 20.04 (focal
).
Akhirnya, instal Docker:
Docker kini seharusnya sudah terinstal, daemon dimulai, dan prosesnya kini dapat berjalan ketika memulai saat boot. Periksa bahwa ini berjalan:
Keluaran harus mirip dengan yang berikut ini, yang menunjukkan bahwa layanan sudah aktif dan berjalan:
Menginstal Docker kini tidak hanya memberi Anda layanan Docker (daemon) tetapi juga utilitas baris perintah docker
, atau klien Docker. Kita akan menjelajahi cara menggunakan perintah docker
di dalam tutorial ini nanti.
Langkah 2 — Mengeksekusi Perintah Docker Tanpa Sudo (Opsional)
Secara asali, perintah docker
hanya dapat dijalankan pengguna root atau oleh pengguna di dalam grup docker yang tercipta secara otomatis selama proses instalasi Docker. Jika Anda mencoba menjalankan perintah docker
tanpa mengawalinya dengan sudo
atau tanpa berada di dalam grup docker, Anda akan mendapat keluaran seperti ini:
Jika Anda ingin menghindari untuk mengetik sudo
setiap kali Anda menjalankan perintah docker
, tambahkan nama pengguna Anda ke grup docker
:
Untuk menerapkan keanggotaan grup baru, lakukan log keluar dari server dan masuk kembali, atau ketik yang berikut ini:
Anda akan diminta untuk memasukkan kata sandi pengguna Anda untuk melanjutkan.
Konfirmasikan bahwa pengguna Anda kini sudah ditambahkan ke grup docker dengan mengetik:
Jika Anda perlu menambahkan seorang pengguna ke grup docker
yang Anda sedang tidak sedang log masuk di dalamnya, deklarasikan nama pengguna secara eksplisit menggunakan:
Mulai dari sekarang, artikel ini mengasumsikan bahwa Anda menjalankan perintah docker
sebagai pengguna di dalam grup docker. Jika Anda memilih untuk tidak melakukan itu, silakan sisipkan perintah dengan awalan sudo
.
Mari kita jelajahi perintah docker
berikutnya.
Langkah 3 — Menggunakan Perintah Docker
Menggunakan docker
terdiri dari memberikannya serangkaian opsi dan perintah yang diikuti oleh argumen. Sintaksnya berbentuk seperti ini:
Untuk melihat semua subperintah yang tersedia, ketik:
Mulai dari Docker 19, daftar lengkap subperintah yang tersedia termasuk:
Untuk melihat opsi yang tersedia untuk perintah spesifik, ketik:
Untuk melihat informasi keseluruhan sistem tentang Docker, gunakan:
Mari kita jelajahi beberapa dari perintah ini. Kita akan mulai dengan bekerja dengan citra.
Langkah 4 — Bekerja dengan Citra Docker
Kontainer Docker dibangun dari citra Docker. Secara asali, Docker menarik citra ini dari Docker Hub, suatu registri Docker yang dikelola oleh Docker, perusahaan di balik proyek Docker. Siapa pun dapat menjadi hos citra Docker miliknya di Docker Hub, sehingga sebagian besar aplikasi dan distro Linux yang Anda butuhkan akan memiliki citra yang ditempatkan di dalamnya.
Untuk memeriksa apakah Anda dapat mengakses dan mengunduh citra dari Docker Hub, ketik:
Keluaran akan mengindikasikan bahwa Docker bekerja dengan benar:
Docker pada awalnya tidak dapat menemukan citra hello-world
secara lokal, sehingga Docker mengunduh citra dari Docker Hub, yang merupakan repositori asali. Setelah citra diunduh, Docker menciptakan suatu kontainer dari citra dan aplikasi di dalam kontainer yang dieksekusi, yang menampilkan pesan.
Anda dapat mencari citra yang tersedia di Docker Hub dengan menggunakan perintah docker
dengan subperintah search
. Sebagai contoh, untuk mencari citra Ubuntu, ketik:
Skrip ini akan mencari di Docker Hub dan memberi daftar semua citra yang namanya cocok dengan string pencarian. Dalam kasus ini, keluarannya akan mirip seperti ini:
Pada kolom OFFICIAL, OK menandakan citra yang dibuat dan didukung oleh perusahaan yang ada di balik proyek ini. Setelah Anda mengidentifikasi citra yang Anda ingin gunakan, Anda dapat mengunduhnya ke komputer Anda menggunakan subperintah pull
.
Jalankan perintah berikut ini untuk mengunduh citra ubuntu
resmi ke komputer Anda:
Anda akan melihat keluaran berikut ini:
Setelah suatu citra telah diunduh, Anda lalu dapat menjalankan suatu kontainer dengan menggunakan citra yang telah diunduh dengan subperintah run
. Seperti yang Anda lihat dengan contoh hello-world
, jika suatu citra belum diunduh saat docker
dieksekusi dengan subperintah run
, klien Docker akan mengunduh citra terlebih dahulu, lalu menjalankan kontainer dengan menggunakannya.
Untuk melihat citra yang telah diunduh ke komputer Anda, ketik:
Keluaran akan terlihat mirip dengan yang berikut ini:
Seperti yang Anda nanti lihat di tutorial ini, citra yang Anda gunakan untuk menjalankan kontainer dapat dimodifikasi dan digunakan untuk menghasilkan citra baru, yang mungkin diunggah (didorong adalah istilah teknisnya) ke Docker Hub atau registri Docker lainnya.
Mari kita lihat cara menjalankan kontainer secara lebih mendetail.
Langkah 5 — Menjalankan Kontainer Docker
Kontainer hello-world
yang Anda jalankan di langkah sebelumnya adalah contoh dari kontainer yang berjalan dan keluar setelah menampilkan suatu pesan teks. Kontainer dapat menjadi lebih bermanfaat daripada itu dan dapat menjadi interaktif. Bagaimanapun juga, kontainer mirip dengan mesin virtual, hanya saja lebih ramah sumber daya.
Sebagai contoh, mari kita jalankan kontainer dengan menggunakan citra terbaru dari Ubuntu. Kombinasi dari switch -i dan -t memberi Anda akses shell interaktif ke dalam kontainer:
Prompt perintah Anda harus berubah untuk mencerminkan fakta bahwa Anda kini bekerja di dalam kontainer dan harus berbentuk seperti ini:
Perhatikan id kontainer di dalam prompt perintah. Pada contoh ini, id-nya adalah d9b100f2f636
. Anda akan membutuhkan id kontainer itu untuk mengidentifikasi kontainer ketika Anda ingin menghapusnya.
Sekarang Anda dapat menjalankan perintah apa pun di dalam kontainer. Sebagai contoh, mari kita perbarui basis data paket di dalam kontainer. Anda tidak perlu mengawali perintah dengan sudo
, karena Anda kini beroperasi di dalam kontainer sebagai pengguna root:
Lalu, instal aplikasi apa pun di dalamnya. Mari kita instal Node.js:
Ini menginstal Node.js di dalam kontainer dari repositori Ubuntu resmi. Saat instalasi selesai, pastikan bahwa Node.js sudah terinstal:
Anda akan melihat nomor versi ditampilkan pada terminal Anda:
Segala perubahan yang Anda buat di dalam kontainer hanya berlaku pada kontainer itu.
Untuk keluar dari kontainer, ketik exit
di prompt.
Selanjutnya, mari kita lihat tentang pengelolaan kontainer di sistem kita.
Langkah 6 — Mengelola Kontainer Docker
Setelah menggunakan Docker selama beberapa waktu, Anda akan memiliki banyak kontainer aktif (berjalan) dan tidak aktif di komputer Anda. Untuk melihat kontainer yang aktif, gunakan:
Anda akan melihat keluaran yang mirip dengan yang berikut ini:
Dalam tutorial ini, Anda memulai dua kontainer, satu dari citra hello-word
dan yang lain dari citra ubuntu
. Kedua kontainer tidak lagi berjalan, tetapi masih ada di sistem Anda.
Untuk melihat semua kontainer — aktif dan tidak aktif, jalankan docker ps
dengan switch -a
:
Anda akan melihat keluaran mirip dengan ini:
1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 8 seconds ago quizzical_mcnultya707221a5f6c hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago youthful_curie
Untuk melihat kontainer terbaru yang Anda buat, teruskan ke switch -l
:
Untuk memulai kontainer yang telah dihentikan, gunakan docker start
, diikuti dengan id kontainer atau nama kontainer. Mari kita mulai kontainer berbasis Ubuntu dengan ID 1c08a7a0d0e4
:
Kontainer akan memulai, dan Anda dapat menggunakan docker ps
untuk melihat statusnya:
Untuk menghentikan suatu kontainer yang sedang berjalan, gunakan docker stop
, diikuti dengan ID atau nama kontainer. Kali ini, kita akan menggunakan nama yang diberikan Docker kepada kontainer, yaitu quizzical_mcnulty
:
Setelah Anda memutuskan bahwa Anda tidak lagi membutuhkan suatu kontainer, hapus kontainer itu dengan perintah docker rm
, dengan kembali menggunakan baik ID atau nama kontainer. Gunakan perintah docker ps -a
untuk menemukan ID atau nama kontainer untuk kontainer yang terkait dengan citra hello-world
dan hapus.
Anda dapat memulai suatu kontainer baru dan memberinya nama dengan menggunakan switch --name
. Anda juga dapat menggunakan switch --rm
untuk menciptakan suatu kontainer yang menghapus dirinya sendiri saat dihentikan. Lihat perintah docker run help
untuk informasi lebih lanjut tentang opsi ini dan lainnya.
Kontainer dapat diubah menjadi citra yang Anda dapat gunakan untuk menciptakan kontainer baru. Mari kita lihat cara kerjanya.
Langkah 7 — Menerapkan Perubahan dalam Kontainer ke Citra Docker
Saat Anda memulai suatu citra Docker, Anda dapat menciptakan, memodifikasi, dan menghapus berkas seperti yang Anda dapat lakukan dengan mesin virtual. Perubahan yang Anda buat hanya akan berlaku untuk kontainer itu. Anda dapat memulai dan menghentikannya, tetapi setelah Anda menghancurkannya dengan perintah docker rm
, perubahan akan hilang selamanya.
Bagian ini menunjukkan kepada Anda cara menyimpan kondisi suatu kontainer sebagai citra Docker baru.
Setelah menginstal Node.js di dalam kontainer Ubuntu, Anda kini memiliki suatu kontainer yang berjalan dari suatu citra, tetapi kontainer ini berbeda dari citra yang Anda gunakan sebelumnya untuk menciptakannya. Tetapi Anda mungkin ingin menggunakan kembali kontainer Node.js ini sebagai dasar untuk citra baru nantinya.
Lalu terapkan perubahan ke instans citra Docker baru dengan menggunakan perintah berikut.
Switch -m adalah untuk pesan penerapan yang membantu Anda dan orang lain untuk mengetahui perubahan yang Anda buat, sedangkan -a digunakan untuk menentukan penulisnya. container_id
adalah hal yang Anda catat sebelumnya dalam tutorial saat Anda memulai sesi Docker interaktif. Kecuali Anda menciptakan repositori tambahan pada Docker Hub, repository
itu biasanya merupakan nama pengguna Docker Hub Anda.
Sebagai contoh, untuk pengguna bernama sammy, dengan ID kontainer d9b100f2f636
, perintahnya adalah:
Saat Anda melakukan commit pada suatu citra, citra baru itu disimpan secara lokal di komputer Anda. Dalam tutorial ini nantinya Anda akan belajar cara mendorong citra ke suatu registri Docker seperti Docker Hub sehingga orang lain dapat mengaksesnya.
Membuat daftar citra Docker kembali akan menampilkan citra baru dan lama yang menjadi rujukan bagi yang baru:
Anda akan melihat keluaran seperti ini:
Pada contoh ini, ubuntu-nodejs
adalah citra baru, yang diturunkan dari citra ubuntu
yang sudah ada sebelumnya dari Docker Hub. Perbedaan ukuran mencerminkan perubahan yang dibuat. Dan dalam contoh ini, perubahannya adalah bahwa NodeJS telah diinstal. Jadi, lain kali Anda perlu menjalankan suatu kontainer yang menggunakan Ubuntu dengan NodeJS yang telah diinstal sebelumnya, Anda dapat langsung menggunakan citra baru ini.
Anda juga dapat membangun citra dari suatu Dockerfile
, yang memungkinkan Anda mengotomatiskan instalasi perangkat lunak dalam suatu citra baru. Namun, hal itu berada di luar cakupan tutorial ini.
Sekarang, mari kita berbagi citra baru dengan orang lain sehingga mereka dapat menciptakan kontainer dari citra itu.
Langkah 8 — Mendorong Citra Docker ke Repositori Docker
Langkah logis berikutnya setelah menciptakan citra baru dari citra yang sudah ada adalah membagikannya kepada beberapa teman yang Anda pilih, seluruh dunia di Docker Hub, atau registri Docker lain yang dapat Anda akses. Untuk mendorong suatu citra ke Docker Hub atau registri Docker lain, Anda harus memiliki akun di sana.
Bagian ini menunjukkan kepada Anda cara mendorong suatu citra Docker ke Docker Hub. Untuk mempelajari cara membuat registri Docker pribadi Anda sendiri, bacalah How To Set Up a Private Docker Registry on Ubuntu 14.04.
Langkah pertama untuk mendorong citra Anda adalah dengan melakukan log masuk ke Docker Hub.
Anda akan diminta melakukan autentikasi menggunakan kata sandi Docker Hub Anda. Jika Anda memberikan kata sandi yang benar, autentikasi pasti berhasil.
Catatan: Jika nama pengguna registri Docker Anda berbeda dari nama pengguna lokal yang Anda gunakan untuk menciptakan citra, Anda harus menandai citra Anda dengan nama pengguna registri. Untuk contoh yang diberikan pada langkah terakhir, Anda perlu mengetik:
Lalu, Anda dapat mendorong citra Anda sendiri menggunakan:
Untuk mendorong citra ubuntu-nodejs
ke repositori sammy, perintahnya adalah:
Proses ini mungkin membutuhkan waktu beberapa saat untuk mengunggah citra hingga selesai, tetapi saat selesai, keluaran akan terlihat seperti ini:
Setelah mendorong citra ke registri, citra akan terdaftar pada dasbor akun Anda, seperti yang ditampilkan dalam gambar di bawah ini.
Jika upaya mendorong menghasilkan kesalahan seperti ini, ada kemungkinan Anda belum log masuk:
Lakukan log masuk dengan login docker
dan ulangi upaya dorong. Lalu pastikan bahwa citra itu ada di halaman repositori Docker Hub.
Anda sekarang dapat menggunakan docker pull sammy/ubuntu-nodejs
untuk menarik citra itu ke mesin baru dan menggunakannya untuk menjalankan suatu kontainer baru.
Sumber: digitalocean
How to Install and Use Docker on Ubuntu 20.04
Docker is an application that simplifies the process of managing application processes inside containers . Containers allow you to run your application inside a resource isolated process. Containers are like virtual machines, but they are more portable, more resource friendly, and more dependent on the host operating system.
For a detailed introduction to the different components of Docker containers, please read The Docker Ecosystem: An Introduction to Common Components .
In this tutorial, you will install and use Docker Community Edition (CE) on Ubuntu 20.04. You will install Docker yourself, work with containers and images, and push images to the Docker Repository.
Precondition
To follow this tutorial, you will need the following:
- One Ubuntu 20.04 server set up following the following Ubuntu 20.04 initial server setup guide , including non-root sudo user and firewall.
- One account in Docker Hub if you want to create your own images and push them to Docker Hub, as shown in Steps 7 and 8.
Step 1 — Installing Docker
The Docker installation package available in the official Ubuntu repository may not be the latest version. To make sure we get the latest version, we'll install Docker from the official Docker repository. To do that, we'll add a new package source, add the GPG key from Docker to make sure the download is valid, then install the package.
First, update your current package list:
Next, install some prerequisite packages that allow apt
using packets over HTTPS:
Then add the GPG key for the official Docker repository to your system:
Add the Docker repository to the APT sources:
Next, update the package database with the Docker package from the newly added repo:
Make sure you are going to install from the Docker repo instead of the default Ubuntu repo:
You'll see output like this, although the version number for Docker may be different:
Output of apt-cache policy docker-cedocker-ce:
Installed: (none)
Candidate: 5:19.03.9~3-0~ubuntu-focal
Version table:
5:19.03.9~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
Note that docker-ce
it's not installed yet, but the candidate for installation is from the Docker repository for Ubuntu 20.04 ( focal
).
Finally, install Docker:
Docker should now be installed, the daemon started, and the process should now be running when it starts at boot. Check that it's running:
The output should be similar to the following, indicating that the service is up and running:
Output● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Installing Docker now gives you not only a Docker service (daemon) but also a command line utility docker
, or Docker client. We'll explore how to use the command docker
later in this tutorial.
apt
using packets over HTTPS:docker-ce:
Installed: (none)
Candidate: 5:19.03.9~3-0~ubuntu-focal
Version table:
5:19.03.9~3-0~ubuntu-focal 500
500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
docker-ce
it's not installed yet, but the candidate for installation is from the Docker repository for Ubuntu 20.04 ( focal
).Output● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-19 17:00:41 UTC; 17s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 24321 (dockerd)
Tasks: 8
Memory: 46.4M
CGroup: /system.slice/docker.service
└─24321 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
docker
, or Docker client. We'll explore how to use the command docker
later in this tutorial.Step 2 — Executing Docker Commands Without Sudo (Optional)
By default, commands docker
can only be run by the root user or by users in the docker group that was created automatically during the Docker installation process. If you try to run a command docker
without prefixing it with sudo
or without being in the docker group , you will get output like this:
Outputdocker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
If you want to avoid having to type it sudo
every time you run a command docker
, add your username to the group docker
:
To apply the new group membership, log off the server and log back in, or type the following:
You will be asked to enter your user password to continue.
Confirm that your user is now added to the docker group by typing:
Outputsammy sudo docker
If you need to add a user to a group docker
that you are not currently logged into, declare the username explicitly using:
From now on, this article assumes that you run commands docker
as a user inside the docker group . If you prefer not to do that, please insert the command with the sudo
.
Let's explore the docker
next command.
docker
can only be run by the root user or by users in the docker group that was created automatically during the Docker installation process. If you try to run a command docker
without prefixing it with sudo
or without being in the docker group , you will get output like this:Outputdocker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.
See 'docker run --help'.
sudo
every time you run a command docker
, add your username to the group docker
:Outputsammy sudo docker
docker
that you are not currently logged into, declare the username explicitly using:docker
as a user inside the docker group . If you prefer not to do that, please insert the command with the sudo
.docker
next command.Step 3 — Using Docker Commands
Using docker
consists of giving it a series of options and commands followed by arguments. The syntax looks like this:
To see all available subcommands, type:
Starting from Docker 19, the full list of available subcommands includes:
Output attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
To see the options available for a specific command, type:
To view system-wide information about Docker, use:
Let's explore some of these commands. We'll start by working with images.
docker
consists of giving it a series of options and commands followed by arguments. The syntax looks like this:Output attach Attach local standard input, output, and error streams to a running container
build Build an image from a Dockerfile
commit Create a new image from a container's changes
cp Copy files/folders between a container and the local filesystem
create Create a new container
diff Inspect changes to files or directories on a container's filesystem
events Get real time events from the server
exec Run a command in a running container
export Export a container's filesystem as a tar archive
history Show the history of an image
images List images
import Import the contents from a tarball to create a filesystem image
info Display system-wide information
inspect Return low-level information on Docker objects
kill Kill one or more running containers
load Load an image from a tar archive or STDIN
login Log in to a Docker registry
logout Log out from a Docker registry
logs Fetch the logs of a container
pause Pause all processes within one or more containers
port List port mappings or a specific mapping for the container
ps List containers
pull Pull an image or a repository from a registry
push Push an image or a repository to a registry
rename Rename a container
restart Restart one or more containers
rm Remove one or more containers
rmi Remove one or more images
run Run a command in a new container
save Save one or more images to a tar archive (streamed to STDOUT by default)
search Search the Docker Hub for images
start Start one or more stopped containers
stats Display a live stream of container(s) resource usage statistics
stop Stop one or more running containers
tag Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
top Display the running processes of a container
unpause Unpause all processes within one or more containers
update Update configuration of one or more containers
version Show the Docker version information
wait Block until one or more containers stop, then print their exit codes
Step 4 — Working with the Docker Image
Docker containers are built from Docker images. By default, Docker pulls these images from Docker Hub , a Docker registry maintained by Docker, the company behind the Docker project. Anyone can host their Docker image on Docker Hub, so most applications and Linux distros you need will have an image housed within.
Untuk memeriksa apakah Anda dapat mengakses dan mengunduh citra dari Docker Hub, ketik:
Keluaran akan mengindikasikan bahwa Docker bekerja dengan benar:
OutputUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
Docker pada awalnya tidak dapat menemukan citra hello-world
secara lokal, sehingga Docker mengunduh citra dari Docker Hub, yang merupakan repositori asali. Setelah citra diunduh, Docker menciptakan suatu kontainer dari citra dan aplikasi di dalam kontainer yang dieksekusi, yang menampilkan pesan.
Anda dapat mencari citra yang tersedia di Docker Hub dengan menggunakan perintah docker
dengan subperintah search
. Sebagai contoh, untuk mencari citra Ubuntu, ketik:
Skrip ini akan mencari di Docker Hub dan memberi daftar semua citra yang namanya cocok dengan string pencarian. Dalam kasus ini, keluarannya akan mirip seperti ini:
OutputNAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 10908 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 428 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 244 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 218 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 108 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with
...
Pada kolom OFFICIAL, OK menandakan citra yang dibuat dan didukung oleh perusahaan yang ada di balik proyek ini. Setelah Anda mengidentifikasi citra yang Anda ingin gunakan, Anda dapat mengunduhnya ke komputer Anda menggunakan subperintah pull
.
Jalankan perintah berikut ini untuk mengunduh citra ubuntu
resmi ke komputer Anda:
Anda akan melihat keluaran berikut ini:
OutputUsing default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
Setelah suatu citra telah diunduh, Anda lalu dapat menjalankan suatu kontainer dengan menggunakan citra yang telah diunduh dengan subperintah run
. Seperti yang Anda lihat dengan contoh hello-world
, jika suatu citra belum diunduh saat docker
dieksekusi dengan subperintah run
, klien Docker akan mengunduh citra terlebih dahulu, lalu menjalankan kontainer dengan menggunakannya.
Untuk melihat citra yang telah diunduh ke komputer Anda, ketik:
Keluaran akan terlihat mirip dengan yang berikut ini:
OutputREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
Seperti yang Anda nanti lihat di tutorial ini, citra yang Anda gunakan untuk menjalankan kontainer dapat dimodifikasi dan digunakan untuk menghasilkan citra baru, yang mungkin diunggah (didorong adalah istilah teknisnya) ke Docker Hub atau registri Docker lainnya.
Mari kita lihat cara menjalankan kontainer secara lebih mendetail.
OutputUnable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
0e03bdcc26d7: Pull complete
Digest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.
...
hello-world
secara lokal, sehingga Docker mengunduh citra dari Docker Hub, yang merupakan repositori asali. Setelah citra diunduh, Docker menciptakan suatu kontainer dari citra dan aplikasi di dalam kontainer yang dieksekusi, yang menampilkan pesan.docker
dengan subperintah search
. Sebagai contoh, untuk mencari citra Ubuntu, ketik:OutputNAME DESCRIPTION STARS OFFICIAL AUTOMATED
ubuntu Ubuntu is a Debian-based Linux operating sys… 10908 [OK]
dorowu/ubuntu-desktop-lxde-vnc Docker image to provide HTML5 VNC interface … 428 [OK]
rastasheep/ubuntu-sshd Dockerized SSH service, built on top of offi… 244 [OK]
consol/ubuntu-xfce-vnc Ubuntu container with "headless" VNC session… 218 [OK]
ubuntu-upstart Upstart is an event-based replacement for th… 108 [OK]
ansible/ubuntu14.04-ansible Ubuntu 14.04 LTS with
...
pull
.ubuntu
resmi ke komputer Anda:OutputUsing default tag: latest
latest: Pulling from library/ubuntu
d51af753c3d3: Pull complete
fc878cd0a91c: Pull complete
6154df8ff988: Pull complete
fee5db0ff82f: Pull complete
Digest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7
Status: Downloaded newer image for ubuntu:latest
docker.io/library/ubuntu:latest
run
. Seperti yang Anda lihat dengan contoh hello-world
, jika suatu citra belum diunduh saat docker
dieksekusi dengan subperintah run
, klien Docker akan mengunduh citra terlebih dahulu, lalu menjalankan kontainer dengan menggunakannya.OutputREPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu latest 1d622ef86b13 3 weeks ago 73.9MB
hello-world latest bf756fb1ae65 4 months ago 13.3kB
Langkah 5 — Menjalankan Kontainer Docker
The container hello-world
you run in the previous step is an example of a container that runs and exits after displaying a text message. Containers can be much more useful than that and can be interactive. After all, containers are similar to virtual machines, only more resource friendly.
As an example, let's run a container using the latest image of Ubuntu. The combination of the -i and -t switches gives you interactive shell access into the container:
Your command prompt should change to reflect the fact that you are now working in a container and should look something like this:
Outputroot@d9b100f2f636:/#
Note the container id in the command prompt. In this example, the id is d9b100f2f636
. You will need that container id to identify the container when you want to delete it.
Now you can run any command inside the container. As an example, let's update the package database inside a container. You don't need to prefix the command with sudo
, because you are now operating inside the container as the root user :
Then, install any application on it. Let's install Node.js:
It installs Node.js in a container from the official Ubuntu repository. When the installation is complete, make sure that Node.js is installed:
You will see the version number displayed on your terminal:
Outputv10.19.0
Any changes you make in the container apply only to that container.
To exit the container, type exit
at the prompt.
Next, let's take a look at managing containers in our system.
hello-world
you run in the previous step is an example of a container that runs and exits after displaying a text message. Containers can be much more useful than that and can be interactive. After all, containers are similar to virtual machines, only more resource friendly.Outputroot@d9b100f2f636:/#
d9b100f2f636
. You will need that container id to identify the container when you want to delete it.sudo
, because you are now operating inside the container as the root user :Outputv10.19.0
exit
at the prompt.Step 6 — Managing Docker Containers
After using Docker for some time, you will have many active (running) and inactive containers on your computer. To see active containers , use:
You will see output similar to the following:
OutputCONTAINER ID IMAGE COMMAND CREATED
In this tutorial, you start two containers, one from image hello-word
and the other from image ubuntu
. Both containers are no longer running, but are still present on your system.
To see all containers — active and inactive, run docker ps
with switch -a
:
You will see output similar to this:
1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 8 seconds ago quizzical_mcnulty
a707221a5f6c hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago youthful_curie
To see the most recent container you created, pass to switch -l
:
To start a stopped container, use docker start
, followed by the container id or container name. Let's start an Ubuntu based container with ID 1c08a7a0d0e4
:
The container will start up, and you can use docker ps
to see its status:
OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c08a7a0d0e4 ubuntu "/bin/bash" 3 minutes ago Up 5 seconds quizzical_mcnulty
To stop a running container, use docker stop
, followed by the container ID or name. This time, we'll use the names that Docker gives to containers, namely quizzical_mcnulty
:
Once you decide that you no longer need a container, remove it with the command docker rm
, again using either the ID or the container name. Use the command docker ps -a
to find the ID or container name for the container associated with the image hello-world
and delete it.
You can start a new container and give it a name using switch --name
. You can also use a switch --rm
to create a container that deletes itself when terminated. See commands docker run help
for more information about these and other options.
Containers can be turned into images that you can use to create new containers. Let's see how it works.
OutputCONTAINER ID IMAGE COMMAND CREATED
hello-word
and the other from image ubuntu
. Both containers are no longer running, but are still present on your system.docker ps
with switch -a
:1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 8 seconds ago quizzical_mcnulty
a707221a5f6c hello-world "/hello" 6 minutes ago Exited (0) 6 minutes ago youthful_curie
-l
:docker start
, followed by the container id or container name. Let's start an Ubuntu based container with ID 1c08a7a0d0e4
:docker ps
to see its status:OutputCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1c08a7a0d0e4 ubuntu "/bin/bash" 3 minutes ago Up 5 seconds quizzical_mcnulty
docker stop
, followed by the container ID or name. This time, we'll use the names that Docker gives to containers, namely quizzical_mcnulty
:docker rm
, again using either the ID or the container name. Use the command docker ps -a
to find the ID or container name for the container associated with the image hello-world
and delete it.--name
. You can also use a switch --rm
to create a container that deletes itself when terminated. See commands docker run help
for more information about these and other options.Step 7 — Applying the Changes in the Container to the Docker Image
When you start a Docker image, you can create, modify, and delete files just like you can with a virtual machine. The changes you make will only apply to that container. You can start and stop it, but once you destroy it with the command docker rm
, changes are lost forever.
This section shows you how to save the state of a container as a new Docker image.
After installing Node.js inside an Ubuntu container, you now have a container running from an image, but this container is different from the image you used to create it. But you may want to reuse this Node.js container as the basis for a new image later.
Then apply the changes to the new Docker image instance using the following command.
The -m switch is for implementation messages that help you and others know about the changes you made, while -a is used to specify the author. container_id
is what you noted earlier in the tutorial when you started an interactive Docker session. Unless you created an additional repository on Docker Hub, repository
that will usually be your Docker Hub username.
For example, for a user named sammy , with a container ID d9b100f2f636
, the command would be:
When you commit an image, the new image is stored locally on your computer. Later in this tutorial you will learn how to push images to a Docker registry such as Docker Hub so others can access them.
Listing the Docker images again will show the new and old images to which the new ones are referenced:
You will see output like this:
OutputREPOSITORY TAG IMAGE ID CREATED SIZE
sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
...
In this example, ubuntu-nodejs
it's a new image, which inherits from a ubuntu
pre-existing image from Docker Hub. The size difference reflects the changes made. And in this example, the change is that NodeJS is installed. So the next time you need to run a container using Ubuntu with NodeJS pre-installed, you can jump right in with this new image.
You can also build an image from an Dockerfile
, which allows you to automate software installation in a new image. However, that is beyond the scope of this tutorial.
Now, let's share the new image with others so they can create containers from it.
docker rm
, changes are lost forever.container_id
is what you noted earlier in the tutorial when you started an interactive Docker session. Unless you created an additional repository on Docker Hub, repository
that will usually be your Docker Hub username.d9b100f2f636
, the command would be:OutputREPOSITORY TAG IMAGE ID CREATED SIZE
sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB
...
ubuntu-nodejs
it's a new image, which inherits from a ubuntu
pre-existing image from Docker Hub. The size difference reflects the changes made. And in this example, the change is that NodeJS is installed. So the next time you need to run a container using Ubuntu with NodeJS pre-installed, you can jump right in with this new image.Dockerfile
, which allows you to automate software installation in a new image. However, that is beyond the scope of this tutorial.Step 8 — Pushing the Docker Image to the Docker Repository
The next logical step after creating a new image from an existing image is to share it with a few friends of your choosing, the world on Docker Hub, or another Docker registry that you have access to. In order to push an image to Docker Hub or another Docker registry, you must have an account there.
This section shows you how to push a Docker image to Docker Hub. To learn how to create your own private Docker registry, read How To Set Up a Private Docker Registry on Ubuntu 14.04 .
The first step to pushing your image is to log into Docker Hub.
You will be asked to authenticate using your Docker Hub password. If you provide the correct password, the authentication should work.
Note: If your Docker registry username is different from the local username you used to create the image, you must tag your image with the registry username. For the example given in the last step, you would type:
Then, you can push your own image using:
To push an image ubuntu-nodejs
to the sammy repository , the command would be:
It may take a few moments for the image upload to complete, but when finished, the output will look something like this:
OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed
...
After pushing the image to the registry, it will be listed on your account dashboard, as shown in the image below.

If the push attempt returns an error like this, it's possible you're not logged in:
OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Preparing
5f70bf18a086: Preparing
a3b5c80a4eba: Preparing
7f18b442972b: Preparing
3ce512daaf78: Preparing
7aae4540b42d: Waiting
unauthorized: authentication required
Log in with login docker
and repeat push attempts. Then make sure that the image is in the Docker Hub repository page.
You can now use to drag the image to the new machine and use it to run a new container.docker pull sammy/ubuntu-nodejs
Note: If your Docker registry username is different from the local username you used to create the image, you must tag your image with the registry username. For the example given in the last step, you would type:
ubuntu-nodejs
to the sammy repository , the command would be:OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Pushed
5f70bf18a086: Pushed
a3b5c80a4eba: Pushed
7f18b442972b: Pushed
3ce512daaf78: Pushed
7aae4540b42d: Pushed
...

OutputThe push refers to a repository [docker.io/sammy/ubuntu-nodejs]
e3fbbfb44187: Preparing
5f70bf18a086: Preparing
a3b5c80a4eba: Preparing
7f18b442972b: Preparing
3ce512daaf78: Preparing
7aae4540b42d: Waiting
unauthorized: authentication required
login docker
and repeat push attempts. Then make sure that the image is in the Docker Hub repository page.docker pull sammy/ubuntu-nodejs
Tags: alamat sdn keagungan sdn pondok jagung 03 sdn 1 perumnas way kandis sdn pabuaran 01 foto alamat sdn sunter agung 07 sdn 43 pekanbaru sdn duri utara sdn cempaka putih barat 03 sdn 113 palembang sdn 152 cigagak sdn 159 sekejati sdn panaragan 1 sdn 22 dauh puri sdn rempoa 1 foto sdn kebon kosong 17 sdn sambirejo 2 sdn kemanggisan 01 pagi sdn adiarsa barat 2 sdn wanasari 01 cibitung sdn 62 pekanbaru sdn penjaringan 03 sdn manggarai 03 sdn joglo 06 pagi sdn cisalak pasar 3 sdn tanjungsari 2 sdn citra indah sukamaju sdn tangerang 3 sdn 08 surau gadang sdn 204 kota jambi sdn cipete utara 15 pagi sdn mergosono 4 sdn 46 cakranegara sdn pinang ranti 01 sdn kebon kawung sukabumi sdn tebet barat 01 sdn neglasari bogor sdn andir kidul sdn tangerang 2 sdn 124 pekanbaru
Tags: sdn semanan 05 pagi sdn sekepeuris 2 sdn sepanjang jaya 1 sdn nagasari 4 sdn cisaat gadis foto sdn duren sawit 18 sdn ciawi 01 sdn cikupa 3 sdn bantarjati 5 sdn simokerto 6 sdn 01 palmerah sdn 1 mimbaan sdn bantarjati 8 sdn 2 besuki tulungagung sdn 172 enrekang sdn ciborerang 01 sdn tanah sareal 1 bogor sdn 37 mandau sdn 55 palembang sdn jelambar 08 sdn wonocolo 1 sdn 51 pekanbaru sdn cemorokandang 3 sdn cilincing 09 sdn pela mampang 05 pagi sdn sukabumi utara 05 sdn tegalrejo 3 sdn telajung 02 sdn kandang panjang 03 sdn semplak 2 sdn jepara 1 surabaya sdn 02 domiyang sdn guntur 03 pagi sdn ciapus 04 sdn 92 kendari sdn 07 malaka jaya sdn ciremai giri sdn sukorejo 1 sdn cipinang muara 05 pagi sdn jati 03
Tags: sdn rampal celaket 1 sdn sunter agung 07 sdn ambarukmo sdn rempoa 04 sdn susukan 03 pagi sdn padurenan jaya sdn sungai miai 7 sdn 11 duren sawit sdn dukuh 2 sdn 112 pekanbaru sdn kesatrian 1 malang alamat sdn cawang 01 pagi sdn sukatani 4 foto sdn jatisari sdn malaka jaya 05 sdn setu 01 sdn grogol utara 03 pagi jakarta selatan sdn sarakan 3 sdn cibodas sdn kencana 2 sdn bekasi jaya 1 sdn ciptawinaya sdn sasana wiyata 1 foto sdn sukamaju 9 sdn jatiluhur 1 sdn sekardangan sdn 116 pekanbaru sdn cipinang muara 16 pagi sdn 09 rawamangun sdn blok i cilegon sdn cilampeni 1 sdn kelapa dua 06 pagi sdn ngadirejo 1 kartasura sdn 3 ampenan sdn 32 kota bengkulu sdn 52 kendari sdn manggarai selatan 01 sdn 002 samarinda kota sdn 108 pekanbaru sdn model kabupaten sukabumi sdn 50 cibiru sdn 158 pekanbaru sdn 3 sungai ulin sdn cilangkap 5 foto sdn rawailat sdn 1 cimareme sdn kepuh kiriman 1 sdn 15 ulu gadut sdn 2 sumberagung malang sdn 210 babakan sinyar sdn bumiayu kajoran sdn mojolangu 2 sdn 008 balikpapan selatan sdn duri pulo 05 pagi sdn dadaprejo 1 sdn sunter agung 01 sdn ragunan 12 sdn jombok 1 sdn cempaka baru 01 sdn suko 2 sdn ancol 01 sdn 37 pekanbaru sdn 25 kendari sdn karet 01 pagi sdn kramat pela 09 sdn pondok bambu 11 pagi sdn keagungan sdn lagoa 07 sdn kragilan 3 sdn kebayoran lama selatan 12 sdn jatireja 01 sdn jati pulo 08 pagi sdn raya barat foto sdn galunggung sdn tulangampiang sdn 147 pekanbaru sdn pajeleran 01 - sukahati cibinong kabupaten bogor foto sdn kebon pala 01 pagi alamat sdn kapuk 07 petang sdn kramat jati 11 sdn angke 06 pagi sdn kepuhkiriman i kabupaten sidoarjo foto sdn moh toha foto sdn 1 way dadi sdn lenteng agung 09 pagi sdn 133 palembang sdn pasar minggu 03 pagi foto sdn pekayon 12 sdn sidomulyo sdn 13 batu gadang sdn dabasah 3 bondowoso sdn pondok pinang 05 sdn duri utara 01 pagi sdn pondok betung 02 sdn cilendek timur 1 sdn karang tengah 8 sdn ragajaya sdn kebon baru 03 sdn teluk dalam 1 sdn 1 sukajaya sdn tropodo 1 sdn perigi 04 sdn srengseng sawah 07 sdn 03 pulogadung sdn 03 madiun lor sdn kebon kosong 01 pagi sdn sukorejo 1 kediri sdn 262 panyileukan sdn pondok terong 4 sdn tanah kali kedinding 2 surabaya sdn sungai miai 4 sdn korpri foto sdn kretek 2 sdn 27 ampenan sdn bojongloa 3 sdn karawaci 5 sdn gunung sahari utara 01 pagi sdn kebon kosong 07 sdn nagasari 1 karawang sdn sidodadi sdn sukahati 01 sdn cikeas 02 sdn kemiri sidoarjo sdn 1 kedaton sdn tambakaji 03 semarang sdn cawang 01 alamat sdn pulo 01 pagi sdn cibeureum mandiri 1 sdn malaka jaya 01 sdn 011 tenggarong sdn gandaria utara 08 pagi sdn sunter agung 09 sdn 06 pagi jakarta timur alamat sdn sunter agung 09 sdn 05 pagi jakarta timur sdn 113 pekanbaru sdn penjaringan 10 pagi sdn sukadamai 3 sdn 03 pagi jakarta selatan sdn margaluyu sdn jatiasih 3 sdn margahayu 7 sdn sendangmulyo 01 sdn petamburan 07 sdn pekojan sdn cipagalo 3 sdn jakasampurna 2 sdn susukan 06 pagi sdn jatimakmur 2 sdn cengkareng timur 17 pagi sdn pulo 01 sdn sukamanah 01 sdn menur pumpungan surabaya sdn harapan mulia 03 sdn pakujajar cbm kota sukabumi sdn kenari 01 sdn tangerang 1 sdn sukasari indah sdn meruya selatan 01 sdn sirnabaya 1 sdn 1 rawa laut sdn kemayoran 09 sdn ciganjur 01 sdn kukupu 3 sdn lengkong wetan 1 sdn 1 ciwareng sdn sirnagalih sdn polisi 4 bogor sdn rahayu cisauk sdn kapuk 09 pagi foto sdn 2 sendang sdn 1 ciledug sdn 1 mentaos sdn 180 pekanbaru sdn kukupu 2 sdn perwira bogor sdn 20 pulo gebang sdn balaraja 2 sdn jombatan 3 foto sdn juwet kenongo sdn kleco 1 sdn kramat jati 01 sdn kuin utara 6 sdn sudimara timur 4 sdn sukadamai 2 bogor sdn sumur batu 2 sdn munjul 01 sdn rawamangun 09 pagi sdn karang asih 06 sdn pondok kopi 04 pagi sdn sirnasari sdn ciloma cibitung sdn karangayu 02 sdn cengkareng barat 01 sdn bukit duri 01 sdn bukit duri 05 pagi sdn grogol utara 03 sdn klender 10 pagi sdn serdang 07 sdn cipulir 03 sdn sukapura 02

Bagi mahasiswa IT khususnya yang berkecimpung di dunia networking tentu tidak asing lagi dengan istilah topologi jaringan. Topologi jaringan menjadi dasar bagi seorang network engineer dalam membangun sebuah jaringan berskala kecil atau besar.Di era Industri 4.0 saat ini, hampir seluruh operasional perusahaan dan instansi pemerintah mulai beralih menggunakan teknologi IT yang berkembang sangat pesat. Mulai dari hardware, aplikasi, disposisi, dll. Kini semua didukung oleh sistem jaringan yang bai…

Demam Berdarah adalah penyakit yang disebabkan oleh virus Dengue yang disebarkan oleh nyamuk Aedes Aegypti melalui gigitannya, dan memiliki jangkauan terbang hingga 100 meter, sehingga penyebarannya sangat cepat.Demam berdarah atau yang biasa kita sebut dengan DBD menyebabkan jumlah trombosit turun drastis sehingga menyebabkan pendarahan internal yang mengakibatkan kerusakan pada organ tubuh dan sel jaringan yang sehat.Sampai saat ini, belum ada obat khusus yang digunakan untuk menyembuhkan dema…

1. Taqabbalallaahu minna wa minkum, selamat Hari Raya Idul Fitri 1444 H, mohon maaf lahir dan batin.2. Selamat Hari Raya Idul Fitri 1 Syawwal 1444 H, taqabbalallaahu minna wa minkum, mohon maaf lahir dan batin.3. Taqabbalallaahu minna wa minkum, taqabbal ya karim. Wa ja’alanallaahu wa iyyakum minal ‘aidin wal faizin wal maqbulin, kullu ‘ammin wa antum bi khair. Selamat Hari Raya Idul Fitri 1444 H. (Semoga Allah SWT menerima amal ibadah Ramadhan kita, wahai Allah Yang Maha Mulia, terimalah.…

Daftar Isi Pendahuluan Sejarah MOTOGP Persiapan Menuju MOTOGP 2015 Kejuaraan MOTOGP 2015 Studi Kasus: Pertarungan Sengit antara Rossi dan Lorenzo Statistik dan Prestasi di MOTOGP 2015 Kesimpulan Pendahuluan Selamat datang di artikel kami yang akan membahas tentang kejadian dan kejuaraan MOTOGP 2015! Pada tahun tersebut, ajang balap motor paling bergengsi di dunia ini menyuguhkan aksi-aksi menegangkan dan persaingan sengit di lintasan. Dalam artikel ini, kami akan…

Penyakit Antraks: Ancaman Serius yang Harus DiketahuiPendahuluanSelamat datang dalam artikel ini yang akan membahas penyakit antraks secara lengkap. Penyakit ini merupakan ancaman serius yang perlu kita ketahui, mengingat potensi bahaya dan dampaknya yang mengerikan. Dalam artikel ini, kita akan menjelajahi berbagai aspek penyakit antraks, termasuk sejarah, gejala, penyebab, pengobatan, serta tindakan pencegahan yang dapat diambil. Mari kita mulai dengan menyimak judul-judul menarik dan sub judu…

Daftar Isi: Pendahuluan Sejarah Queenstown: Perjalanan Melintasi Waktu Pesona Alam Queenstown yang Menakjubkan Aktivitas Menarik di Queenstown: Petualangan yang Tidak Terlupakan Mencicipi Kuliner Lokal di Queenstown: Perjalanan Gastronomi yang Menggoda Kesenangan Malam di Queenstown: Hiburan yang Menggetarkan Penginapan di Queenstown: Menginap dengan Pemandangan yang Menakjubkan Belanja di Queenstown: Temukan Barang Unik dan Khas Kiat Wisatawan: Tips dan Trik untuk Liburan yang Sukses d…

Daftar IsiPendahuluanSejarah Buah NanasKeajaiban Nutrisi dalam Buah NanasManfaat Kesehatan Buah NanasMenguatkan Sistem Kekebalan TubuhMeningkatkan Kesehatan JantungMembantu Pencernaan yang SehatMenyehatkan Kulit dan RambutMenurunkan Risiko KankerMengurangi Peradangan dalam TubuhMembantu Menjaga Keseimbangan ElektrolitMendukung Kesehatan MataMembantu Menurunkan Berat BadanMenyegarkan dan Memperbaiki MoodTips Mengonsumsi Buah Nanas dengan OptimalMemilih Buah Nanas yang MatangCara Memotong dan Meng…

Tips Agar Anak Tidak Terlibat Pergaulan BebasPendahuluanAnak-anak adalah aset berharga dalam kehidupan kita. Mereka adalah masa depan yang perlu kita lindungi dan arahkan dengan baik. Salah satu tantangan terbesar yang dihadapi orangtua adalah memastikan bahwa anak-anak mereka tidak terjerumus dalam pergaulan bebas yang dapat berdampak negatif pada perkembangan mereka. Dalam artikel ini, kita akan membahas beberapa tips yang dapat membantu Anda dalam memastikan anak Anda tidak terlibat dalam per…

Daftar IsiPendahuluanSejarah Suku DayakKeberagaman Suku DayakMasyarakat Dayak dalam Kehidupan Sehari-hariRitual dan Tradisi Suku DayakSeni dan Budaya DayakPendidikan dan Perkembangan Suku DayakPengaruh Modernisasi terhadap Suku DayakStudi Kasus: Suku Dayak di Kalimantan TengahKesimpulan1. PendahuluanSelamat datang dalam artikel ini yang akan membahas dengan detail dan menarik tentang suku Dayak, salah satu kelompok etnis pribumi yang mendiami wilayah Nusantara. Suku Dayak memiliki keunikan dan k…

Daftar IsiPengantarSejarah Bendungan KatulampaKonstruksi Bendungan KatulampaFungsi dan Manfaat Bendungan KatulampaMasalah yang Dihadapi oleh Bendungan KatulampaPengelolaan Bendungan KatulampaKelestarian Lingkungan sekitar Bendungan KatulampaStudi Kasus: Dampak Banjir di Wilayah Bendungan KatulampaStatistik Terkait Bendungan KatulampaKesimpulan1. PengantarSelamat datang dalam artikel kami yang akan membahas tentang bendungan yang sangat menarik dan penting, yaitu Bendungan Katulampa. Dalam artike…

Daftar IsiSejarah Suku KajangAsal Usul Suku Kajang: Mitos dan FaktaPerjalanan Suku Kajang Melintasi ZamanKehidupan Suku KajangTata Kelola Sosial dan Struktur MasyarakatTradisi dan Upacara Adat yang MemikatBahasa dan Budaya Suku KajangKeunikan Bahasa Kajang: Menjaga Tradisi LisanSeni dan Kerajinan Tangan yang MendalamHubungan Suku Kajang dengan AlamKeterhubungan Suku Kajang dengan Alam LiarKeberlanjutan Lingkungan dan KonservasiTantangan ModernitasDampak Perubahan Sosial dan BudayaUpaya Pelestari…

PendahuluanSelamat datang di artikel kami yang menakjubkan tentang peninggalan megalitikum yang bersemayam di Desa Kamal Jember. Melalui perjalanan ini, kita akan menggali lebih dalam tentang betapa berharganya pelajaran yang bisa kita ambil dari situs-situs bersejarah ini. Siapkan diri Anda untuk menyelam dalam petualangan yang penuh dengan keajaiban dan hikmah dari masa lalu yang masih relevan untuk kita hari ini.Daftar IsiSejarah Megalitikum: Jejak Peradaban yang AbadiMenggali Makna Simbolis …

PendahuluanSelamat datang di surga alam Sumatera Barat! Artikel ini akan membawa Anda menelusuri keajaiban alam yang memukau, yakni pemandangan indah di Tabiang Takaruang Ngarai Sianok, sebuah destinasi magis yang akan membius Anda dengan keindahan luar biasa. Kami akan menjelajahi setiap sudut keelokan alam ini, mengulas sejarahnya yang mengagumkan, memberikan tutorial berharga untuk menikmati destinasi ini, dan menghadirkan beberapa cerita menarik yang mengisahkan betapa megahnya keberadaan Ta…

PendahuluanSelamat datang, sahabat penjelajah sejarah! Kita akan berangkat dalam perjalanan mengagumkan melintasi lorong waktu menuju masa lalu yang menyimpan misteri besar. Tak jauh dari pulau Sumba, Nusa Tenggara Timur, tersembunyi sebuah warisan megah yang terus menantang para peneliti dan arkeolog. Kami akan membawa Anda pada petualangan melintasi Peninggalan Megalitikum Praiyawang Sumba NTT, situs kuno yang menjanjikan jawaban dari pertanyaan-pertanyaan mendalam tentang peradaban masa silam…

PendahuluanSelamat datang di dunia indah Mata Air Gua Candi, Kebumen! Dalam artikel ini, kita akan menjelajahi dengan penuh kekaguman tentang keindahan alam yang menakjubkan dan unik ini. Dari kejernihan air hingga pesona alam sekitarnya, kita akan merangkai cerita yang menginspirasi. Mari kita mulai petualangan kita menuju indahnya Mata Air Gua Candi!Daftar IsiKeajaiban Mata Air yang Melimpah Keindahan dan Kejernihan Air yang Menakjubkan Pesona Bawah Air yang Tersembunyi Eksplorasi Lingkungan d…

PendahuluanKereta cepat ICE (Intercity-Express) DB Jerman telah menjadi simbol inovasi teknologi transportasi modern. Artikel ini akan membawa Anda dalam perjalanan melalui kecanggihan luar biasa yang dimiliki oleh kereta cepat ini, menggali fitur-fitur revolusioner yang mengubah cara kita berpikir tentang perjalanan kereta api.Daftar IsiSejarah dan Perkembangan ICE DB JermanDesain Futuristik dan Interior MewahTeknologi Kecepatan TinggiEfisiensi Energi dan LingkunganKeselamatan Tak TertandingiKe…

PendahuluanSelamat datang, pembaca yang budiman! Kali ini kita akan menjelajahi dunia menakjubkan komodo, yang tak lain adalah kadal terbesar di planet ini. Bersama-sama, kita akan memahami keunikan, sejarah, serta kehidupan dari makhluk yang penuh misteri ini. Siapkan diri Anda untuk petualangan ilmiah yang tak terlupakan!Daftar IsiKadal Raksasa dari Indonesia: Siapa Mereka?Mengenali komodo sebagai spesies kadal unik.Jejak Sejarah yang MengejutkanMenggali sejarah penemuan komodo.Mengapa Mereka …

PendahuluanApakah Anda pernah membayangkan betapa memukau dan menariknya alam dapat membentuk batuan raksasa di tepi pantai? Pantai Laskar telah menghadirkan pemandangan luar biasa ini dengan batu granit raksasa yang mengundang kekaguman dan rasa ingin tahu. Dalam artikel ini, kita akan merenungi keajaiban alam ini dan menyelami detail menakjubkan di balik pesona Batu Granit Raksasa di Pantai Laskar.Daftar IsiSejarah Pantai LaskarKeunikan Batu Granit RaksasaProses Pembentukan BatuanPesona Senja …

Pendahuluan Penyu mungkin bukan hewan yang sering menjadi pusat perbincangan, namun ada satu jenis penyu yang patut mendapat perhatian khusus - Penyu Si Leher Panjang. Dalam artikel ini, kita akan menjelajahi semua hal unik yang membuat Penyu Si Leher Panjang begitu menarik dan misterius. Dari anatomi mereka yang luar biasa hingga peran penting mereka dalam ekosistem laut, mari kita telusuri semua aspek menarik tentang makhluk ini.Daftar IsiPendahuluanSejarah dan Penemuan Penyu Si Leher PanjangA…

PendahuluanGrand Canyon, Amerika Serikat, adalah salah satu keajaiban alam terbesar di dunia. Terkenal karena keindahan alamnya yang spektakuler, Grand Canyon telah memikat hati jutaan pengunjung dari seluruh penjuru dunia. Dalam artikel ini, kami akan membahas mengapa Grand Canyon dianggap sebagai salah satu tempat paling menakjubkan di planet ini. Dengan panduan dari 10 judul dan 10 sub judul yang akan kita bahas secara mendalam, mari kita menjelajahi keajaiban alam ini secara rinci.Daftar Isi…