Docker adalah platform containerization open source. Ini memungkinkan developer untuk mengemas aplikasi ke dalam container—komponen standar yang dapat dieksekusi yang menggabungkan kode sumber aplikasi dengan library sistem operasi (OS) dan dependensi yang diperlukan untuk menjalankan kode tersebut di lingkungan apa pun.
Docker adalah seperangkat platform sebagai produk layanan yang menggunakan virtualisasi tingkat OS untuk mengirimkan perangkat lunak dalam paket yang disebut kontainer. Kontainer diisolasi satu sama lain dan menggabungkan perangkat lunak, pustaka, dan file konfigurasi mereka sendiri; mereka dapat berkomunikasi satu sama lain melalui saluran yang terdefinisi dengan baik.
Periksa juga tautan ini:
- Cara Menginstal dan Menggunakan Docker di Ubuntu 20.04
- Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Centos 8
- Cara menginstal dan mengkonfigurasi buruh pelabuhan Di Fedora 34/35
- Memulai Menulis Docker Dengan Contoh
- Docker sebagai agen build – Jalankan build Jenkins di Docker
Prasyarat
Untuk mengikuti, pastikan Anda memiliki:
- Sistem Debian 11 terbaru
- Akses internet dari sistem
- Akses root atau pengguna dengan akses sudo
- Pengetahuan tentang terminal Linux
Daftar Isi
- Pastikan paket sistem Anda mutakhir
- Copot pemasangan versi sebelumnya jika ada
- Instal mesin buruh pelabuhan menggunakan repositori
- Instal mesin buruh pelabuhan dari sebuah paket
- Instal menggunakan skrip praktis
- Verifikasi pemasangan
- Mengeksekusi Perintah Docker Tanpa Sudo
- Mencopot pemasangan buruh pelabuhan saat dibutuhkan lagi
1. Pastikan paket sistem Anda mutakhir
Sebelum melanjutkan, izinkan kami memastikan paket Anda diperbarui
sudo apt update
sudo apt upgrade -y
2. Copot pemasangan versi sebelumnya jika ada
Paket yang menyediakan versi lama Docker adalah docker
, docker.io
, atau docker-engine
.
Mari kita gunakan perintah ini untuk memastikan bahwa paket-paket ini tidak ada di sistem kita:
sudo apt-get remove docker docker-engine docker.io containerd runc
Tidak masalah jika apt-get melaporkan bahwa tidak ada paket ini yang diinstal.
Menginstal buruh pelabuhan
Anda dapat menginstal Docker Engine dengan berbagai cara, bergantung pada kebutuhan Anda:
- Anda dapat mengatur repositori buruh pelabuhan dan menginstal buruh pelabuhan menggunakan apt
- Anda dapat mengunduh paket DEB dan menginstal secara manual
- Anda dapat memilih untuk menggunakan skrip kemudahan otomatis untuk menginstal Docker
3. Instal mesin buruh pelabuhan menggunakan repositori
Pada Host baru, repositori buruh pelabuhan tidak ada. Untuk pertama kalinya di mesin host baru, Anda perlu menyiapkan repositori Docker. Setelah itu, Anda dapat menginstal dan memperbarui Docker dari repositori.
Mari kita instal paket berikut untuk memungkinkan apt menggunakan repositori melalui HTTPS:
sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg \
lsb-release
Tambahkan kunci GPG resmi Docker:
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gp
Gunakan perintah berikut untuk mengatur repositori stabil. Untuk menambahkan setiap malam atau uji repositori, tambahkan kata nightly
atau test
(atau keduanya) setelah kata stable
dalam perintah di bawah ini.
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Instal Mesin Docker
Perbarui indeks paket apt karena kami menambahkan repositori baru:
sudo apt-get update
Sekarang mari kita instal versi terbaru dari Docker Engine dan containerd usi
sudo apt-get install docker-ce docker-ce-cli containerd.io
Opsional:Menginstal versi tertentu
Jika Anda memiliki persyaratan yang mengharuskan versi tertentu, Anda dapat melakukannya. Untuk menginstal versi tertentu:
1. Buat daftar versi yang tersedia di repo Anda:
$ sudo apt-cache madison docker-ce
docker-ce | 5:20.10.9~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.8~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.7~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
docker-ce | 5:20.10.6~3-0~debian-bullseye | https://download.docker.com/linux/debian bullseye/stable amd64 Packages
Sekarang Anda dapat Menginstal versi tertentu menggunakan string versi dari kolom kedua, misalnya, 5:20.10.7~3-0~debian-bullseye
.
sudo apt-get install docker-ce=<VERSION_STRING> docker-ce-cli=<VERSION_STRING> containerd.io
Contoh:
sudo apt-get install docker-ce=5:20.10.7~3-0 docker-ce-cli=5:20.10.7~3-0 containerd.io
Setelah instalasi selesai, daemon Docker dimulai secara otomatis.
4. Instal mesin buruh pelabuhan dari sebuah paket
Jika Anda tidak dapat menggunakan repositori Docker untuk menginstal Docker Engine, Anda dapat mengunduh .deb
file untuk rilis Anda dan instal secara manual. Anda perlu mengunduh file baru setiap kali ingin memutakhirkan Docker.
Buka https://download.docker.com/linux/debian/dists/, pilih versi Debian Anda – (Bullseye), lalu jelajahi pool/stable/
, pilih amd64
, armhf
, atau arm64
, dan unduh file .deb untuk versi Docker Engine yang ingin Anda instal.
Instal Docker Engine, ubah jalur di bawah ini ke jalur tempat Anda mengunduh paket Docker.
sudo dpkg -i /path/to/package.deb
Setelah instalasi selesai, daemon Docker dimulai secara otomatis.
5. Instal menggunakan skrip kenyamanan
Docker menyediakan skrip kemudahan di get.docker.com untuk menginstal Docker ke dalam lingkungan pengembangan dengan cepat dan non-interaktif.
Contoh ini mengunduh skrip dari get.docker.com dan menjalankannya untuk menginstal rilis stabil terbaru Docker di Linux:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
6. Verifikasi pemasangan
Setelah instalasi, buruh pelabuhan akan berjalan sebagai daemon. Untuk memeriksa apakah buruh pelabuhan sedang berjalan, kita menggunakan systemctl status docker
perintah:
$ sudo systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-10-19 04:10:32 UTC; 4min 16s ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 13456 (dockerd)
Tasks: 7
Memory: 39.0M
CPU: 265ms
CGroup: /system.slice/docker.service
└─13456 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789071579Z" level=info msg="scheme \"unix\" not registered, fallback to default scheme" module=grpc
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789278242Z" level=info msg="ccResolverWrapper: sending update to cc: {[{unix:///run/containerd/container>
Oct 19 04:10:31 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:31.789447226Z" level=info msg="ClientConn switching balancer to \"pick_first\"" module=grpc
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.059851510Z" level=info msg="Loading containers: start."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.267528805Z" level=info msg="Default bridge (docker0) is assigned with an IP address 172.17.0.0/16. Daemo>
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.337295417Z" level=info msg="Loading containers: done."
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363462993Z" level=info msg="Docker daemon" commit=79ea9d3 graphdriver(s)=overlay2 version=20.10.9
Oct 19 04:10:32 ip-10-2-40-246 dockerd[13456]: time="2021-10-19T04:10:32.363783617Z" level=info msg="Daemon has completed initialization"
Active: active (running)
menunjukkan bahwa buruh pelabuhan berhasil dimulai.
Kita dapat menjalankan hello-world
image untuk menguji apakah buruh pelabuhan berfungsi seperti yang diharapkan:
sudo docker run hello-world
Perintah ini mengunduh gambar uji dan menjalankannya dalam wadah. Saat container berjalan, container akan mencetak pesan informasi dan keluar.
Saya mendapatkan hasil ini, menunjukkan bahwa ini berfungsi dengan baik:
$ sudo docker run hello-world Unable to find image 'hello-world:latest' locally latest: Pulling from library/hello-world 2db29710123e: Pull complete Digest: sha256:37a0b92b08d4919615c3ee023f7ddb068d12b8387475d64c622ac30f45c29c51 Status: Downloaded newer image for hello-world:latest Hello from Docker! This message shows that your installation appears to be working correctly.
7. Menjalankan Perintah Docker Tanpa Sudo
Secara default, perintah docker hanya dapat dijalankan oleh pengguna root atau oleh pengguna di grup docker, yang secara otomatis dibuat selama proses instalasi Docker. Jika Anda mencoba menjalankan perintah buruh pelabuhan tanpa mengawalinya dengan sudo atau tanpa berada di grup buruh pelabuhan, Anda akan mendapatkan output seperti ini:
$ docker ps
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied
Jika Anda ingin menghindari mengetik sudo setiap kali Anda menjalankan perintah buruh pelabuhan, tambahkan nama pengguna Anda ke grup buruh pelabuhan:
sudo usermod -aG docker ${USER}
Untuk menerapkan keanggotaan grup baru, keluar dari server dan masuk kembali, atau ketik berikut ini:
sudo su - ${USER}
Anda akan diminta memasukkan sandi pengguna untuk melanjutkan.
Konfirmasikan bahwa pengguna Anda sekarang telah ditambahkan ke grup buruh pelabuhan dengan mengetik:
id -nG
Saya melihat ini, mengonfirmasi bahwa saya sekarang termasuk dalam grup buruh pelabuhan
$ id -nG
admin docker
Sekarang saya bisa melakukan buruh pelabuhan tanpa Sudo:
Mari kita uji dengan menjalankan gambar.
$ docker run --rm -it --name alpine --entrypoint /bin/sh alpine:3
Unable to find image 'alpine:3' locally
3: Pulling from library/alpine
a0d0a0d46f8b: Pull complete
Digest: sha256:e1c082e3d3c45cccac829840a25941e679c25d438cc8412c2fa221cf1a824e6a
Status: Downloaded newer image for alpine:3
/ #
Kami telah berhasil menginstal buruh pelabuhan di sistem kami!
8. Menghapus instalasi buruh pelabuhan saat dibutuhkan lagi
Untuk sepenuhnya menghapus mesin buruh pelabuhan dari sistem, kita perlu menghapus instalasi Mesin Docker, CLI, dan paket Containerd:
sudo apt-get purge docker-ce docker-ce-cli containerd.io -y
Gambar, wadah, volume, atau file konfigurasi khusus di host Anda tidak dihapus secara otomatis. Untuk menghapus semua gambar, wadah, dan volume:
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
Anda harus menghapus file konfigurasi yang diedit secara manual.
Kesimpulan
Dalam panduan ini kami berhasil menginstal buruh pelabuhan di sistem Debian 11 kami.