Share to: share facebook share twitter share wa share telegram print page

Smp 1 Karang Baru

smp smpn 18 depok smp pelita harapan bangsa tegal smp annajah medan smp talaga smp 17 banda aceh smp kanaan global school jambi smp pgri 6 bogor smp al iman parakan smp sains miftahul huda smp 2 salatiga smpit al itqon balaraja tangerang banten smp 1 karang baru smp islamiyah serua foto smpn 5 mengwi smp 26 surabaya smp pgri 7 denpasar smp 1 talaga smp tarakanita 4 smp negeri 26 surabaya foto smp al chalidiyah smp 13 makassar smp 8 jakarta anak smp smpn 108 jakarta smp 177 smp madani pekanbaru smp 1 tabanan smp 116 smp 25 bandar lam…

smp nomensen jambi smpn 1 majalaya smpn 25 padang foto smp 3 tegal smp 48 surabaya smpn 2 baleendah smp cinus smp 9 sukabumi alamat smpn 263 jakarta timur smp 1 pasawahan logo smpn 5 karawang barat smpn 1 ciampea biaya masuk smp tugu ibu depok smp muhammadiyah 2 kartasura smp al ghazaly bogor smpit amalia smp 1 kedungwaru smp 57 surabaya smpn 172 jakarta smp bruder pontianak smp it ittihadul muwahidin smp 11 yogyakarta smp budi mulia ciledu…

smp ypi darussalam 1 cerme gresik smp negeri 1 haurgeulis smp santa maria kabanjahe smpn 2 tayu smp negeri 10 pontianak foto smp muhammadiyah 10 sidoarjo smp 17 samarinda smp sejahtera 2 cileungsi smp 10 tapung smp pib pasirjambu smpn 1 lemahsugih smpn 3 katapang smp ibnu aqil smp pgri 7 bogor smp 55 makassar smp negeri 3 langsa foto smp 160 jakarta smp negeri 18 depok logo smpn 1 giri banyuwangi smp 25 surakarta smp 2 selomerto smp muhammadiyah cipondoh smpn 1 cimenyan smp suluh jakarta foto smp muhammadiyah 7 …

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:

  1. sudo apt update

Selanjutnya, instal beberapa paket prasyarat yang memungkinkan apt menggunakan paket lewat HTTPS:

  1. sudo apt install apt-transport-https ca-certificates curl software-properties-common

Lalu tambahkan kunci GPG untuk repositori Docker resmi ke sistem Anda:

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Tambahkan repositori Docker ke sumber APT:

  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Selanjutnya, perbarui basis data paket dengan paket Docker dari repo yang baru ditambahkan:

  1. sudo apt update

Pastikan Anda akan menginstal dari repo Docker alih-alih repo Ubuntu asali:

  1. apt-cache policy docker-ce

Anda akan melihat keluaran seperti ini, meskipun nomor versi untuk Docker mungkin berbeda:

Output of apt-cache policy docker-ce

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:

  1. sudo apt install docker-ce

Docker kini seharusnya sudah terinstal, daemon dimulai, dan prosesnya kini dapat berjalan ketika memulai saat boot. Periksa bahwa ini berjalan:

  1. sudo systemctl status docker

Keluaran harus mirip dengan yang berikut ini, yang menunjukkan bahwa layanan sudah aktif dan berjalan:

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 agoTriggeredBy: ● 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

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:

Output
docker: Cannot connect to the Docker daemon. Is the docker daemon running on this host?.See 'docker run --help'.

Jika Anda ingin menghindari untuk mengetik sudo setiap kali Anda menjalankan perintah docker, tambahkan nama pengguna Anda ke grup docker:

  1. sudo usermod -aG docker ${USER}

Untuk menerapkan keanggotaan grup baru, lakukan log keluar dari server dan masuk kembali, atau ketik yang berikut ini:

  1. su - ${USER}

Anda akan diminta untuk memasukkan kata sandi pengguna Anda untuk melanjutkan.

Konfirmasikan bahwa pengguna Anda kini sudah ditambahkan ke grup docker dengan mengetik:

  1. id -nG

Output
sammy sudo docker

Jika Anda perlu menambahkan seorang pengguna ke grup docker yang Anda sedang tidak sedang log masuk di dalamnya, deklarasikan nama pengguna secara eksplisit menggunakan:

  1. sudo usermod -aG docker username

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:

  1. docker [option] [command] [arguments]

Untuk melihat semua subperintah yang tersedia, ketik:

  1. docker

Mulai dari Docker 19, daftar lengkap subperintah yang tersedia termasuk:

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

Untuk melihat opsi yang tersedia untuk perintah spesifik, ketik:

  1. docker docker-subcommand --help

Untuk melihat informasi keseluruhan sistem tentang Docker, gunakan:

  1. docker info

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:

  1. docker run hello-world

Keluaran akan mengindikasikan bahwa Docker bekerja dengan benar:

Output
Unable to find image 'hello-world:latest' locallylatest: Pulling from library/hello-world0e03bdcc26d7: Pull completeDigest: sha256:6a65f928fb91fcfbc963f7aa6d57c8eeb426ad9a20c7ee045538ef34847f44f1Status: Downloaded newer image for hello-world:latestHello 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:

  1. docker search ubuntu

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:

Output
NAME DESCRIPTION STARS OFFICIAL AUTOMATEDubuntu 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:

  1. docker pull ubuntu

Anda akan melihat keluaran berikut ini:

Output
Using default tag: latestlatest: Pulling from library/ubuntud51af753c3d3: Pull completefc878cd0a91c: Pull complete6154df8ff988: Pull completefee5db0ff82f: Pull completeDigest: sha256:747d2dbbaaee995098c9792d99bd333c6783ce56150d1b11e333bbceed5c54d7Status: Downloaded newer image for ubuntu:latestdocker.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:

  1. docker images

Keluaran akan terlihat mirip dengan yang berikut ini:

Output
REPOSITORY TAG IMAGE ID CREATED SIZEubuntu latest 1d622ef86b13 3 weeks ago 73.9MBhello-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.

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:

  1. docker run -it ubuntu

Prompt perintah Anda harus berubah untuk mencerminkan fakta bahwa Anda kini bekerja di dalam kontainer dan harus berbentuk seperti ini:

Output
root@d9b100f2f636:/#

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:

  1. apt update

Lalu, instal aplikasi apa pun di dalamnya. Mari kita instal Node.js:

  1. apt install nodejs

Ini menginstal Node.js di dalam kontainer dari repositori Ubuntu resmi. Saat instalasi selesai, pastikan bahwa Node.js sudah terinstal:

  1. node -v

Anda akan melihat nomor versi ditampilkan pada terminal Anda:

Output
v10.19.0

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:

  1. docker ps

Anda akan melihat keluaran yang mirip dengan yang berikut ini:

Output
CONTAINER ID IMAGE COMMAND CREATED

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:

  1. docker ps -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:

  1. docker ps -l

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  2. 1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 40 seconds ago quizzical_mcnulty

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:

  1. docker start 1c08a7a0d0e4

Kontainer akan memulai, dan Anda dapat menggunakan docker ps untuk melihat statusnya:

Output
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES1c08a7a0d0e4 ubuntu "/bin/bash" 3 minutes ago Up 5 seconds quizzical_mcnulty

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:

  1. docker stop 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.

  1. docker rm youthful_curie

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.

  1. docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

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:

  1. docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

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:

  1. docker images

Anda akan melihat keluaran seperti ini:

Output
REPOSITORY TAG IMAGE ID CREATED SIZEsammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB...

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.

  1. docker login -u docker-registry-username

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:

  1. docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

Lalu, Anda dapat mendorong citra Anda sendiri menggunakan:

  1. docker push docker-registry-username/docker-image-name

Untuk mendorong citra ubuntu-nodejs ke repositori sammy, perintahnya adalah:

  1. docker push sammy/ubuntu-nodejs

Proses ini mungkin membutuhkan waktu beberapa saat untuk mengunggah citra hingga selesai, tetapi saat selesai, keluaran akan terlihat seperti ini:

Output
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]e3fbbfb44187: Pushed5f70bf18a086: Pusheda3b5c80a4eba: Pushed7f18b442972b: Pushed3ce512daaf78: Pushed7aae4540b42d: Pushed...

Setelah mendorong citra ke registri, citra akan terdaftar pada dasbor akun Anda, seperti yang ditampilkan dalam gambar di bawah ini.

Daftar citra Docker baru pada Docker Hub

Jika upaya mendorong menghasilkan kesalahan seperti ini, ada kemungkinan Anda belum log masuk:

Output
The push refers to a repository [docker.io/sammy/ubuntu-nodejs]e3fbbfb44187: Preparing5f70bf18a086: Preparinga3b5c80a4eba: Preparing7f18b442972b: Preparing3ce512daaf78: Preparing7aae4540b42d: Waitingunauthorized: authentication required

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:

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:

  1. sudo apt update

Next, install some prerequisite packages that allow aptusing packets over HTTPS:

  1. sudo apt install apt-transport-https ca-certificates curl software-properties-common

Then add the GPG key for the official Docker repository to your system:

  1. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Add the Docker repository to the APT sources:

  1. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Next, update the package database with the Docker package from the newly added repo:

  1. sudo apt update

Make sure you are going to install from the Docker repo instead of the default Ubuntu repo:

  1. apt-cache policy docker-ce

You'll see output like this, although the version number for Docker may be different:

Output of apt-cache policy docker-ce

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

Note that docker-ceit's not installed yet, but the candidate for installation is from the Docker repository for Ubuntu 20.04 ( focal).

Finally, install Docker:

  1. sudo apt install docker-ce

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:

  1. sudo systemctl status docker

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 dockerlater in this tutorial.

Step 2 — Executing Docker Commands Without Sudo (Optional)

By default, commands dockercan 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 dockerwithout prefixing it with sudoor without being in the docker group , you will get output like this:

Output
docker: 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 sudoevery time you run a command docker, add your username to the group docker:

  1. sudo usermod -aG docker ${USER}

To apply the new group membership, log off the server and log back in, or type the following:

  1. su - ${USER}

You will be asked to enter your user password to continue.

Confirm that your user is now added to the docker group by typing:

  1. id -nG

Output
sammy sudo docker

If you need to add a user to a group dockerthat you are not currently logged into, declare the username explicitly using:

  1. sudo usermod -aG docker username

From now on, this article assumes that you run commands dockeras a user inside the docker group . If you prefer not to do that, please insert the command with the sudo.

Let's explore the dockernext command.

Step 3 — Using Docker Commands

Using dockerconsists of giving it a series of options and commands followed by arguments. The syntax looks like this:

  1. docker [option] [command] [arguments]

To see all available subcommands, type:

  1. docker

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:

  1. docker docker-subcommand --help

To view system-wide information about Docker, use:

  1. docker info

Let's explore some of these commands. We'll start by working with images.

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:

  1. docker run hello-world

Keluaran akan mengindikasikan bahwa Docker bekerja dengan benar:

Output
Unable 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:

  1. docker search ubuntu

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:

Output
NAME 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:

  1. docker pull ubuntu

Anda akan melihat keluaran berikut ini:

Output
Using 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:

  1. docker images

Keluaran akan terlihat mirip dengan yang berikut ini:

Output
REPOSITORY 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.

Langkah 5 — Menjalankan Kontainer Docker

The container hello-worldyou 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:

  1. docker run -it ubuntu

Your command prompt should change to reflect the fact that you are now working in a container and should look something like this:

Output
root@d9b100f2f636:/#

Note the container id in the command prompt. In this example, the id is d9b100f2f636You 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 :

  1. apt update

Then, install any application on it. Let's install Node.js:

  1. apt install nodejs

It installs Node.js in a container from the official Ubuntu repository. When the installation is complete, make sure that Node.js is installed:

  1. node -v

You will see the version number displayed on your terminal:

Output
v10.19.0

Any changes you make in the container apply only to that container.

To exit the container, type exitat the prompt.

Next, let's take a look at managing containers in our system.

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:

  1. docker ps

You will see output similar to the following:

Output
CONTAINER ID IMAGE COMMAND CREATED

In this tutorial, you start two containers, one from image hello-wordand the other from image ubuntuBoth containers are no longer running, but are still present on your system.

To see all containers — active and inactive, run docker pswith switch -a:

  1. docker ps -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:

  1. docker ps -l

  1. CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
  2. 1c08a7a0d0e4 ubuntu "/bin/bash" 2 minutes ago Exited (0) 40 seconds ago quizzical_mcnulty

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:

  1. docker start 1c08a7a0d0e4

The container will start up, and you can use docker psto see its status:

Output
CONTAINER 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:

  1. docker stop 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 -ato find the ID or container name for the container associated with the image hello-worldand delete it.

  1. docker rm youthful_curie

You can start a new container and give it a name using switch --nameYou can also use a switch --rmto create a container that deletes itself when terminated. See commands docker run helpfor 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.

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.

  1. docker commit -m "What you did to the image" -a "Author Name" container_id repository/new_image_name

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_idis what you noted earlier in the tutorial when you started an interactive Docker session. Unless you created an additional repository on Docker Hub, repositorythat will usually be your Docker Hub username.

For example, for a user named sammy , with a container ID d9b100f2f636, the command would be:

  1. docker commit -m "added Node.js" -a "sammy" d9b100f2f636 sammy/ubuntu-nodejs

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:

  1. docker images

You will see output like this:

Output
REPOSITORY TAG IMAGE ID CREATED SIZE sammy/ubuntu-nodejs latest 7c1f35226ca6 7 seconds ago 179MB ...

In this example, ubuntu-nodejsit's a new image, which inherits from a ubuntupre-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.

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.

  1. docker login -u docker-registry-username

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:

  1. docker tag sammy/ubuntu-nodejs docker-registry-username/ubuntu-nodejs

Then, you can push your own image using:

  1. docker push docker-registry-username/docker-image-name

To push an image ubuntu-nodejsto the sammy repository , the command would be:

  1. docker push sammy/ubuntu-nodejs

It may take a few moments for the image upload to complete, but when finished, the output will look something like this:

Output
The 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.

List of new Docker images on Docker Hub

If the push attempt returns an error like this, it's possible you're not logged in:

Output
The 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 dockerand 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



491

Tags: smp smpn 18 depok smp pelita harapan bangsa tegal smp annajah medan smp talaga smp 17 banda aceh smp kanaan global school jambi smp pgri 6 bogor smp al iman parakan smp sains miftahul huda smp 2 salatiga smpit al itqon balaraja tangerang banten smp 1 karang baru smp islamiyah serua foto smpn 5 mengwi smp 26 surabaya smp pgri 7 denpasar smp 1 talaga smp tarakanita 4 smp negeri 26 surabaya foto smp al chalidiyah smp 13 makassar smp 8 jakarta anak smp smpn 108 jakarta smp 177 smp madani pekanbaru smp 1 tabanan smp 116 smp 25 bandar lampung smp 1 kartasura smpn 8 bogor smp mataram smp 41 padang smp 12 tangerang smp wira buana smp 73 smp dharma wanita surabaya smp masyithoh kroya

smp nomensen jambi smpn 1 majalaya smpn 25 padang foto smp 3 tegal smp 48 surabaya smpn 2 baleendah smp cinus smp 9 sukabumi alamat smpn 263 jakarta timur smp 1 pasawahan logo smpn 5 karawang barat smpn 1 ciampea biaya masuk smp tugu ibu depok smp muhammadiyah 2 kartasura smp al ghazaly bogor smpit amalia smp 1 kedungwaru smp 57 surabaya smpn 172 jakarta smp bruder pontianak smp it ittihadul muwahidin smp 11 yogyakarta smp budi mulia ciledug smpn 23 kota serang smp bahagia smpn 224 jakarta smp pgri 2 ciambar smpn 2 kosambi smpn 1 nglegok biaya masuk smp al zahra pamulang smpn 23 tangerang smp 2 ambarawa smp prima cendekia islami smp negeri 9 yogyakarta smpn 238 smp al izhar smp generasi madani smp islamiyah serua smp negeri 280 jakarta foto smp yapis timika

smp ypi darussalam 1 cerme gresik smp negeri 1 haurgeulis smp santa maria kabanjahe smpn 2 tayu smp negeri 10 pontianak foto smp muhammadiyah 10 sidoarjo smp 17 samarinda smp sejahtera 2 cileungsi smp 10 tapung smp pib pasirjambu smpn 1 lemahsugih smpn 3 katapang smp ibnu aqil smp pgri 7 bogor smp 55 makassar smp negeri 3 langsa foto smp 160 jakarta smp negeri 18 depok logo smpn 1 giri banyuwangi smp 25 surakarta smp 2 selomerto smp muhammadiyah cipondoh smpn 1 cimenyan smp suluh jakarta foto smp muhammadiyah 7 colomadu smp negeri 2 wanareja smpit al yasmin bogor smp handayani smpn 1 gempol foto smp 17 singkawang biaya masuk smp binakheir depok smp 23 padang smp 25 kota jambi foto smp generasi madani cibinong smp raden fatah cimanggu smpn 2 gegesik smp harapan jaya smp ibrahimy 1 sukorejo smp manggala smp ypk hedam abepura smp muhammadiyah bogor smp crot smp teknologi pilar bangsa smp 6 ciamis smp it azzahra smp negeri 8 merauke smp syubbanul wathon bandongan foto smp fatahillah ciledug smp 2 sawahlunto smp negeri 13 pematang siantar smp plus nurul hikmah al hakim foto smpit aulady foto smpn 51 palembang smp 68 bandung smp negeri 1 masohi smp islam pemalang smpn 55 jakarta foto smp 182 jakarta smp n 6 medan smp integral hidayatullah depok smp negeri 45 jakarta smp panca budi medan smpn 172 smp dharma putra tangerang smp xaverius bukittinggi smpn 1 doko smp n 1 rembang purbalingga indonesia smp smpn 25 bandar lampung foto smp tridaya sakti smp yppui ciledug foto smp 7 bukittinggi smp muhammadiyah 3 tangerang smp negeri 2 jatilawang smp 8 bengkulu smp muara ilmu smp negeri 2 margaasih foto smp 2 jati kudus smp fatima sibolga smp islam yp3i smp muhammadiyah 2 blitar smp muhammadiyah parakan smp negeri 2 ciparay smp negeri 3 klari foto smpn 1 kronjo smpn 31 depok smpn 4 banda aceh smp daan mogot tangerang smp itikurih hibarna ciparay smp negeri 1 bojongpicung smp negeri 2 sampang smp plus qurrota a'yun samarang kabupaten garut jawa barat smp surya bangsa smpn 1 sendang smp education pekanbaru smp 4 bulukumba smp negeri 1 kebonagung smp negeri 1 plosoklaten foto smpn 1 nglegok foto smp 3 kisaran smp negeri 4 kalasan foto smpn 7 nganjuk alamat smp 126 jakarta timur meki smp smpn 03 batu smp negeri 25 palembang foto smp negeri 14 malang smp stella maris smpn 3 curug tangerang smp islam sudirman ambarawa smp negeri 1 kuningan smpn 1 mauk smp 177 jakarta selatan smp 128 smp 3 tenggarong smp harapan bangsa depok smp pgri 3 larangan smp 26 samarinda smp islam ta'allumul huda bumiayu foto smp negeri 31 depok smp 1 mempawah hilir smp 2 andong smp mutiara pertiwi smp negeri 5 stabat smpn 3 tulakan smp cinta rakyat 2 pematangsiantar smp hasanuddin 10 semarang foto smp n 1 kedungjati smp negeri 1 tajur halang smp nu hasyim asyari panunggalan smp raudlatul falah smp tahfidz ar rasyid cibinong smpn 1 karangsembung cirebon smpn 1 tapung hulu alamat smp 160 alamat smpn 269 jakarta pusat alamat smpn 213 jakarta timur smp suluh smpn 4 bogor smp 140 jakarta alamat smpn 129 jakarta utara smp sion blora smp penda mojogedang smpn 4 tangerang smp 6 pati smp 44 jakarta smpn 5 bontang smp perguruan cikini smpn 8 jakarta smp 6 banda aceh dood smp pg tk, sd, smp islam az zahra foto smp 199 smp 35 semarang smp negeri 2 medan smp 25 semarang smp 9 pekanbaru smp 28 palembang smpit el ma'mur smp negeri 1 sidoarjo smp 12 samarinda smpn 98 jakarta alamat smpn 229 jakarta barat alamat smpn 234 jakarta timur smp 202 jakarta timur smp 172 smp madani smpn 1 luragung smp karya ibu palembang smpn 2 cibungbulang foto smp muhammadiyah 6 malang smp 184 smp 273 smpn 7 palembang smp 5 banguntapan smpn 1 kunjang smpn 1 mejayan alamat smpn 138 jakarta timur smp hati kudus smpn 11 balikpapan smp negeri 126 jakarta foto smpn 274 jakarta smp negeri 1 stabat smp 187 smp 2 cirebon smp negeri 156 jakarta smp negeri 34 medan biaya masuk smp amaliah ciawi smp mutiara 1 bandung alamat smpn 132 jakarta barat smp ardjuna malang smp islam nurul falah smp islam parung smpn 1 prigen smp 3 trenggalek smp negeri 6 ambon smp 14 padang smp negeri 138 jakarta foto smp darussalam jakarta selatan smp mutiara palabuhanratu smp negeri 3 berastagi

Baca juga artikel menarik lainnya:
Apa perbedaan SNBP dan SNMPTN ? Dan Apa Itu SNBP ?

Seleksi Nasional Berbasis Prestasi (SNBP) mudah mendekati tahap pendaftaran. Banyak juga yang belum terlalu tahu apa itu SNBP. Jika dulu ada Seleksi Nasional Masuk Perguruan Tinggi (SNMPTN), sekarang ada SNBP. Apa itu SNBP? Apa perbedaan antara SNBP dan SNMPTN?Mulai tahun 2023, Kemendikbud memiliki tiga jalur masuk perguruan tinggi negeri. Ketiga jalur tersebut adalah SNBP, Seleksi Nasional Berdasarkan Tes (SNBT), dan jalur seleksi mandiri yang diselenggarakan oleh masing-masing PTN.SNBP Adalah …

Pengertian Jaringan Komputer

Apa itu jaringan komputer?Jaringan komputer mengacu pada perangkat komputasi yang saling berhubungan dan dapat bertukar data dan berbagi sumber daya satu sama lain. Perangkat jaringan ini menggunakan sistem aturan, yang dikenal sebagai protokol komunikasi, untuk mengirimkan informasi melalui teknologi fisik atau nirkabel.Bagaimana cara kerja jaringan komputer?Node dan tautan adalah blok bangunan dasar dalam jaringan komputer. Node jaringan dapat berupa peralatan komunikasi data (DCE) seperti mod…

Cara Sukses Menjadi Agen Online

1. Pengantar Apa itu agen online? Mengapa menjadi agen online menarik? 2. Menemukan Niche yang Tepat Mengapa penting menemukan niche yang tepat? Bagaimana cara menemukan niche yang sesuai? 3. Memilih Platform yang Tepat Apa saja platform yang bisa digunakan sebagai agen online? Bagaimana memilih platform yang tepat untuk keberhasilan? 4. Membangun Brand Pribadi Mengapa penting membangun brand pribadi? Langkah-langkah dalam membangun brand pribadi y…

Laksamana Portugis Afonso de Albuquerque: Keberanian, Strategi Maritim, dan Inspirasi Sejarah yang Mengubah Takdir Hindia Timur

Laksamana Portugis Afonso de Albuquerque: Penakluk dan Strategi BeraniPendahuluanSelamat datang di artikel ini yang akan membahas tokoh sejarah yang menarik dan berpengaruh, Laksamana Portugis Afonso de Albuquerque. Dalam artikel ini, kita akan menjelajahi kehidupan, prestasi, dan strategi unik yang diadopsinya selama abad ke-16. Dari penaklukan kota-kota di Hindia Timur hingga pembangunan kekuasaan Portugis, Anda akan menemukan bagaimana keberanian dan kecerdikannya membentuk sejarah maritim. B…

Penyakit Antraks: Ancaman Serius yang Harus Diketahui - Sejarah, Gejala, Pengobatan, dan Dampak yang Melebihi Batas

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…

Museum Ambarawa: Mengungkap Sejarah yang Tersembunyi

Daftar IsiKata PengantarSejarah Museum AmbarawaMenelusuri Eksibisi yang MengagumkanKereta Api Kuno: Melintasi Jalur MasaArsitektur Kolonial: Keindahan yang AbadiKoleksi Perang: Jejak Pahlawan yang Tak TerlupakanMengintip di Balik Layar MuseumKonservasi Benda Bersejarah: Mempertahankan WarisanKuratorial dan Penelitian: Menjaga Kekayaan BudayaMenikmati Pengalaman InteraktifMengendarai Kereta Api Mini: Petualangan untuk Semua UsiaWorkshop Restorasi: Menjadi Seorang Arkeolog SementaraStudi Kasus: Re…

Pemandangan Sunrise di Gunung Sindoro: Keindahan Alam yang Memukau

Daftar IsiPendahuluanMengenal Gunung SindoroMemahami Sunrise dan KeindahannyaPersiapan Sebelum Mendaki Gunung SindoroPerjalanan Menuju Puncak Gunung SindoroMomen Magis: Menyaksikan Sunrise di Puncak Gunung SindoroMenikmati Pemandangan di Sekitar Gunung SindoroTips Mengabadikan Keindahan SunrisePengalaman Pendaki di Gunung SindoroKesimpulanPendahuluanSelamat datang di artikel tutorial kami yang akan membahas tentang keindahan alam yang menakjubkan, yaitu pemandangan sunrise di Gunung Sindoro. Di …

Membimbing Anak Anda Menuju Masa Depan yang Terjaga: 10 Tips Efektif untuk Menghindari Pergaulan Bebas

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…

Waduk Jatiluhur: Mengoptimalkan Potensi Air untuk Kesejahteraan dan Keberlanjutan

Daftar IsiPengantarSejarah Waduk JatiluhurPotensi dan Manfaat Waduk JatiluhurPemanfaatan Air Waduk Jatiluhur untuk IrigasiPemanfaatan Energi Listrik dari Waduk JatiluhurKeberlanjutan dan Dampak LingkunganStudi Kasus: Keberhasilan Pemanfaatan Waduk Jatiluhur di Suatu DesaStatistik Pendukung: Efektivitas Pemanfaatan Waduk JatiluhurMengatasi Tantangan dan Kendala dalam Pemanfaatan Waduk JatiluhurKesimpulan1. PengantarSelamat datang pada artikel tutorial yang akan membahas tentang Waduk Jatiluhur. D…

Heathrow International Airport: Gerbang Penerbangan Unik dan Menarik di London

Daftar IsiSejarah Singkat: Dari Ladang Gandum hingga Bandara InternasionalTerminal-Terminal Heathrow: Tempat Di Mana Petualangan DimulaiMenyelami Fasilitas Eksklusif: Lounge dan Fitur Khusus BandaraTersesat di Heathrow? Tips Navigasi dan TransportasiTeknologi Canggih di Balik Layanan PenerbanganHeathrow dan Lingkungan: Komitmen untuk KeberlanjutanMenikmati Belanja di Heathrow: Dari Butik Mewah hingga Suvenir UnikKuliner di Antara Penerbangan: Wisata Kuliner di HeathrowMomen Unik dan Aneh: Kisah …

Lompat Batu Fahombo Nias: Keberanian dan Kebersamaan dari Pulau Nias

Daftar IsiSejarah Lompat Batu Fahombo NiasLatar Belakang dan MaknaCerita Lompat Batu dalam Legenda FahomboMakna Simbolik Lompat BatuProsesi dan Tradisi dalam Lompat BatuPeran Lompat Batu dalam Budaya NiasPerbandingan dengan Tradisi LainStudi Kasus: Pesona Lompat Batu bagi WisatawanTutorial Melakukan Lompat Batu ala FahomboKesimpulan: Keabadian Legenda Lompat Batu Fahombo Nias1. Sejarah Lompat Batu Fahombo NiasLompat Batu Fahombo Nias adalah tradisi unik yang telah ada sejak zaman kuno di pulau N…

Bendungan Daniel Johnson Kanada: Keajaiban Energi, Lingkungan, dan Inspirasi Masa Depan

Sejarah Bendungan Daniel JohnsonMengenang Asal Usulnya yang HebatPerjuangan Membangun Monumen ModernSpesifikasi dan Teknologi CanggihBeton, Turbin, dan CahayaPeran Teknologi dalam Pengelolaan AirManfaat dan Dampak LingkunganTenaga Listrik untuk Masa DepanPerlindungan Ekosistem yang RentanRekreasi dan Pariwisata di Sekitar BendunganWisatawan yang TerpesonaAktivitas Luar Ruangan untuk Semua UsiaStudi Kasus: Kejadian Mendebarkan di Bendungan Daniel JohnsonPertolongan yang Cepat dan ResponsifMenghad…

Stadion Gelora Bung Tomo Surabaya: Keajaiban Arsitektur dan Semangat Kebangsaan

Daftar IsiSejarah Stadion Gelora Bung TomoArsitektur Unik StadionFasilitas Modern untuk Kepuasan PenontonAcara-Acara Spektakuler di StadionPertandingan Sepak Bola Penuh GairahStadion sebagai Simbol KebersamaanKonser Musik dan Hiburan RakyatPeran Stadion dalam Pembinaan Atlet MudaStadion Gelora Bung Tomo: Destinasi Wisata OlahragaKesimpulan: Keajaiban di Tengah Kota1. Sejarah Stadion Gelora Bung TomoStadion Gelora Bung Tomo, juga dikenal sebagai "GBT," adalah sebuah stadion olahraga terbesar di S…

Menyingkap Misteri Kecanggihan: Perjalanan Ajaib bersama Kereta Cepat ICE DB Jerman

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…

Misteri Bangsa Viking: Mengungkap Keberanian, Seni, dan Warisan Mereka yang Abadi

PendahuluanSejarah Viking: Terlahir dari Lautan AksiomaPengantar Viking: Lebih dari Sekadar PemarahKehidupan di Laut: Navigasi Tanpa BatasMitos dan Kenyataan: Viking Sejati atau Hanya Sebuah Imaginasi?Mengurai Fakta dari Fiksi: Perspektif ArkeologisKehidupan Sehari-hari: Rumah, Keluarga, dan Aktivitas VikingPertempuran dan Keberanian: Ketika Viking Menyerang!Kepakaran Tempur: Senjata-senjata Mematikan VikingEkspedisi Viking: Jejak Kekuatan dan PenaklukanKreativitas dalam Kebrutalan: Seni dan Bud…

Keajaiban KAMBING IBEX ALPEN: Eksplorasi Unik tentang Kehidupan di Puncak Dunia

Daftar IsiPendahuluanSejarah KAMBING IBEX ALPENKeunikan Fisik KAMBING IBEX ALPENAdaptasi Lingkungan yang MenakjubkanPerjuangan untuk Bertahan HidupKehidupan Sosial dan Komunikasi yang MenarikMisteri Perilaku KAMBING IBEX ALPENDampak Manusia dan Upaya PerlindunganStudi Kasus: Perubahan Iklim dan Populasi KAMBING IBEX ALPENPanduan Pengamatan KAMBING IBEX ALPENKesimpulan1. PendahuluanSelamat datang di sebuah perjalanan eksplorasi yang tak terlupakan di puncak dunia, di mana KAMBING IBEX ALPEN menja…

Keajaiban dan Misteri Burung Temmick's Tragopan: Merahnya Alam yang Hidup

PendahuluanDi dalam rimba hutan yang rimbun, terdapat seekor burung yang merah menyala dengan kecantikan yang luar biasa. Dialah Burung Temmick's Tragopan, spesies yang mengundang decak kagum dan memikat hati para pengamat alam.Daftar IsiSejarah PenemuanMengungkap jejak pertama kali ditemukan: misteri dan penemuan yang menggugah.Ciri Khas EksotisKeindahan warna dan adaptasi unik: mengapa Burung Temmick's Tragopan begitu istimewa.Biologi dan PerilakuKehidupan sehari-hari: dari kebiasaan makan hin…

Pesona Memukau Danau Bekri Lampung: Kejernihan Air, Legenda Mistis, dan Kisah Menakjubkan

PendahuluanSelamat datang di artikel ini, di mana kita akan membahas tentang keindahan yang begitu memukau dari salah satu tempat wisata tersembunyi yang harus dijelajahi di Indonesia, yaitu Danau Bekri di Lampung. Bersama-sama, kita akan mengungkap pesona alam yang menakjubkan, sejarahnya yang menarik, dan berbagai aktivitas seru yang bisa Anda nikmati di sini. Dari mata air jernih hingga legenda mistis, Danau Bekri memiliki begitu banyak hal untuk ditawarkan kepada pengunjungnya. Mari kita mul…

Mengungkap Keindahan dan Misteri Jembatan Gantung Vasco da Gama: Dari Sejarah Hingga Desain Megah

PendahuluanSelamat datang di dunia misteri dan keindahan Jembatan Gantung Vasco da Gama! Dalam artikel ini, kita akan membahas secara mendalam tentang jembatan yang mempesona ini, mengungkap sejarahnya yang kaya dan fenomena unik yang mengelilinginya. Mari kita mulai perjalanan ini yang akan mengungkapkan keindahan teknik insinyur dan pesona alam sekaligus.Daftar IsiSejarah yang MengagumkanKisah Awal Vasco da GamaKonstruksi JembatanBatu Kunci PembangunanDesain SpektakulerArsitektur ModernTeknik …

Keajaiban Tanjakan Sitinjau LauiK: Sejarah, Petualangan, dan Keindahan Alam yang Mengagumkan

PendahuluanTanjakan Sitinjau LauiK, sebuah nama yang mungkin belum banyak terdengar di telinga Anda. Namun, di balik keheningan nama ini tersembunyi sejuta cerita menarik dan keindahan alam yang memukau. Dalam artikel ini, kita akan mengajak Anda untuk menjelajahi tanjakan misterius ini, menggali sejarahnya, mengungkap rahasia alamnya, dan merasakan sensasi petualangannya. Bersiaplah untuk terpesona dan terinspirasi oleh keajaiban Tanjakan Sitinjau LauiK!Daftar IsiSejarah Tanjakan Sitinjau LauiK…

Kembali kehalaman sebelumnya