Mesin Docker di Windows

Berlaku untuk: Windows Server 2022, Windows Server 2019, Windows Server 2016

Docker Engine dan klien tidak disertakan dengan Windows dan perlu diinstal dan dikonfigurasi satu per satu. Selain itu, Docker Engine dapat menerima banyak konfigurasi kustom. Beberapa contoh termasuk mengonfigurasi bagaimana daemon menerima permintaan masuk, opsi jaringan default, dan pengaturan debug/log. Di Windows, konfigurasi ini dapat ditentukan dalam file konfigurasi atau dengan menggunakan pengelola kontrol Layanan Windows. Dokumen ini merinci cara menginstal dan mengonfigurasi Docker Engine, dan juga menyediakan beberapa contoh konfigurasi yang umum digunakan.

Menginstal Docker

Anda memerlukan Docker untuk bekerja dengan Kontainer Windows. Docker terdiri dari Docker Engine (dockerd.exe), dan klien Docker (docker.exe). Cara term mudah untuk menginstal semuanya ada di panduan mulai cepat, yang akan membantu Anda menyiapkan semuanya dan menjalankan kontainer pertama Anda.

Untuk penginstalan berskrip, lihat Menggunakan skrip untuk menginstal Docker EE.

Sebelum dapat menggunakan Docker, Anda harus menginstal gambar kontainer. Untuk informasi selengkapnya, lihat dokumen untuk gambar dasar kontainer kami.

Mengonfigurasi Docker dengan file konfigurasi

Metode yang disukai untuk mengonfigurasi Mesin Docker di Windows menggunakan file konfigurasi. File konfigurasi dapat ditemukan di 'C:\ProgramData\Docker\config\daemon.json'. Anda dapat membuat file ini jika belum ada.

Catatan

Tidak setiap opsi konfigurasi Docker yang tersedia berlaku untuk Docker di Windows. Contoh berikut menunjukkan opsi konfigurasi yang berlaku. Untuk informasi selengkapnya tentang konfigurasi Docker Engine, lihat File konfigurasi daemon Docker.

{
    "authorization-plugins": [],
    "dns": [],
    "dns-opts": [],
    "dns-search": [],
    "exec-opts": [],
    "storage-driver": "",
    "storage-opts": [],
    "labels": [],
    "log-driver": "",
    "mtu": 0,
    "pidfile": "",
    "data-root": "",
    "cluster-store": "",
    "cluster-advertise": "",
    "debug": true,
    "hosts": [],
    "log-level": "",
    "tlsverify": true,
    "tlscacert": "",
    "tlscert": "",
    "tlskey": "",
    "group": "",
    "default-ulimits": {},
    "bridge": "",
    "fixed-cidr": "",
    "raw-logs": false,
    "registry-mirrors": [],
    "insecure-registries": [],
    "disable-legacy-registry": false
}

Anda hanya perlu menambahkan perubahan konfigurasi yang diinginkan ke file konfigurasi. Misalnya, sampel berikut mengonfigurasi Docker Engine untuk menerima koneksi masuk pada port 2375. Semua opsi konfigurasi lainnya akan menggunakan nilai default.

{
    "hosts": ["tcp://0.0.0.0:2375"]
}

Demikian juga, sampel berikut mengonfigurasi daemon Docker untuk menyimpan gambar dan kontainer di jalur alternatif. Jika tidak ditentukan, nilai default-nya adalah c:\programdata\docker.

{   
    "data-root": "d:\\docker"
}

Sampel berikut mengonfigurasi daemon Docker untuk hanya menerima koneksi aman melalui port 2376.

{
    "hosts": ["tcp://0.0.0.0:2376", "npipe://"],
    "tlsverify": true,
    "tlscacert": "C:\\ProgramData\\docker\\certs.d\\ca.pem",
    "tlscert": "C:\\ProgramData\\docker\\certs.d\\server-cert.pem",
    "tlskey": "C:\\ProgramData\\docker\\certs.d\\server-key.pem",
}

Mengonfigurasi Docker pada layanan Docker

Docker Engine juga dapat dikonfigurasi dengan memodifikasi layanan Docker dengan sc config. Dengan menggunakan metode ini, bendera Docker Engine diatur langsung pada layanan Docker. Jalankan perintah berikut dalam prompt perintah (cmd.exe bukan PowerShell):

sc config docker binpath= "\"C:\Program Files\docker\dockerd.exe\" --run-service -H tcp://0.0.0.0:2375"

Catatan

Anda tidak perlu menjalankan perintah ini jika file daemon.json Anda sudah berisi "hosts": ["tcp://0.0.0.0:2375"] entri.

Konfigurasi umum

Contoh file konfigurasi berikut menunjukkan konfigurasi Docker umum. Ini dapat digabungkan ke dalam satu file konfigurasi.

Pembuatan jaringan default

Untuk mengonfigurasi Docker Engine sehingga tidak membuat jaringan NAT default, gunakan konfigurasi berikut.

{
    "bridge" : "none"
}

Untuk informasi selengkapnya, lihat Mengelola Jaringan Docker.

Mengatur grup keamanan Docker

Ketika Anda telah masuk ke host Docker dan menjalankan perintah Docker secara lokal, perintah ini dijalankan melalui pipa bernama. Secara default, hanya anggota grup Administrator yang dapat mengakses Docker Engine melalui pipa bernama. Untuk menentukan grup keamanan yang memiliki akses ini, gunakan group bendera .

{
    "group" : "docker"
}

Konfigurasi proksi

Untuk mengatur informasi proksi untuk docker search dan docker pull, buat variabel lingkungan Windows dengan nama HTTP_PROXY atau HTTPS_PROXY, dan nilai informasi proksi. Ini dapat diselesaikan dengan PowerShell menggunakan perintah yang mirip dengan ini:

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://username:password@proxy:port/", [EnvironmentVariableTarget]::Machine)

Setelah variabel diatur, mulai ulang layanan Docker.

Restart-Service docker

Untuk informasi selengkapnya, lihat File Konfigurasi Windows di Docker.com.

Cara menghapus instalasi Docker

Bagian ini akan memberi tahu Anda cara menghapus instalasi Docker dan melakukan pembersihan penuh komponen sistem Docker dari sistem Windows 10 atau Windows Server 2016 Anda.

Catatan

Anda harus menjalankan semua perintah dalam instruksi ini dari sesi PowerShell yang ditingkatkan.

Siapkan sistem Anda untuk penghapusan Docker

Sebelum Anda menghapus instalan Docker, pastikan tidak ada kontainer yang berjalan pada sistem Anda.

Jalankan cmdlet berikut untuk memeriksa kontainer yang sedang berjalan:

# Leave swarm mode (this will automatically stop and remove services and overlay networks)
docker swarm leave --force

# Stop all running containers
docker ps --quiet | ForEach-Object {docker stop $_}

Ini juga merupakan praktik yang baik untuk menghapus semua kontainer, gambar kontainer, jaringan, dan volume dari sistem Anda sebelum menghapus Docker. Anda dapat melakukan ini dengan menjalankan cmdlet berikut:

docker system prune --volumes --all

Copot pemasangan Docker

Selanjutnya, Anda harus benar-benar menghapus instalasi Docker.

Untuk menghapus instalasi Docker di Windows 10

  • Buka Pengaturan> Apps di komputer Windows 10 Anda
  • Di bawah Aplikasi & Fitur, temukan Docker untuk Windows
  • Buka Docker untuk Penghapusan Instalasi Windows>

Untuk menghapus instalan Docker di Windows Server 2016:

Dari sesi PowerShell yang ditingkatkan, gunakan cmdlet Uninstall-Package dan Uninstall-Module untuk menghapus modul Docker dan Penyedia Manajemen Paket yang sesuai dari sistem Anda, seperti yang ditunjukkan dalam contoh berikut:

Uninstall-Package -Name docker -ProviderName DockerMsftProvider
Uninstall-Module -Name DockerMsftProvider

Tip

Anda dapat menemukan Penyedia Paket yang Anda gunakan untuk menginstal Docker PS C:\> Get-PackageProvider -Name *Docker*

Membersihkan data Docker dan komponen sistem

Setelah menghapus instalan Docker, Anda harus menghapus jaringan default Docker sehingga konfigurasinya tidak akan tetap ada di sistem Anda setelah Docker hilang. Anda dapat melakukan ini dengan menjalankan cmdlet berikut:

Get-HNSNetwork | Remove-HNSNetwork

Untuk menghapus jaringan default Docker di Windows Server 2016.

Get-ContainerNetwork | Remove-ContainerNetwork

Jalankan cmdlet berikut untuk menghapus data program Docker dari sistem Anda:

Remove-Item "C:\ProgramData\Docker" -Recurse

Anda mungkin juga ingin menghapus fitur opsional Windows yang terkait dengan Docker/kontainer di Windows.

Ini termasuk fitur "Kontainer", yang secara otomatis diaktifkan pada Windows 10 atau Windows Server 2016 saat Docker diinstal. Ini mungkin juga termasuk fitur "Hyper-V", yang secara otomatis diaktifkan pada Windows 10 ketika Docker diinstal, tetapi harus diaktifkan secara eksplisit pada Windows Server 2016.

Penting

Fitur Hyper-V adalah fitur virtualisasi umum yang memungkinkan lebih dari sekadar kontainer. Sebelum menonaktifkan fitur Hyper-V, pastikan tidak ada komponen virtual lain pada sistem Anda yang memerlukan Hyper-V.

Untuk menghapus fitur Windows di Windows 10:

  • Buka Panel Kontrol> Program>dan Fitur>Aktifkan atau nonaktifkan fitur Windows.
  • Temukan nama fitur atau fitur yang ingin Anda nonaktifkan—dalam hal ini, Kontainer dan (opsional) Hyper-V.
  • Hapus centang pada kotak di samping nama fitur yang ingin Anda nonaktifkan.
  • Pilih "OK"

Untuk menghapus fitur Windows di Windows Server 2016:

Dari sesi PowerShell yang ditingkatkan, jalankan cmdlet berikut untuk menonaktifkan fitur Kontainer dan (opsional) Hyper-V dari sistem Anda:

Remove-WindowsFeature Containers
Remove-WindowsFeature Hyper-V

Reboot sistem Anda

Untuk menyelesaikan penghapusan instalasi dan pembersihan, jalankan cmdlet berikut dari sesi PowerShell yang ditingkatkan untuk me-reboot sistem Anda:

Restart-Computer -Force