Pengenalan | Imej Docker ialah templat baca sahaja imej boleh digunakan untuk membuat bekas Docker menyediakan mekanisme yang sangat mudah untuk mencipta imej atau mengemas kini imej sedia ada yang lain Imej boleh digunakan terus. |
Biasanya, apabila anda mula menggunakan docker, kami tidak terlalu mengambil berat tentang direktori lalai yang Docker gunakan untuk menyimpan imej dan bekas. Apabila mencuba lebih banyak dengan Docker, anda perlu menekan butang panik apabila Docker mula mengambil banyak ruang. Jadi kini tiba masanya untuk beralih kepada penyelesaian masalah tentang cara menukar lokasi storan lalai docker. Selepas melalui banyak masalah di banyak tapak web dan forum, saya tidak dapat memikirkan langkah untuk menukar direktori lalai untuk imej dan bekas Docker pada hos CentOS7. Siaran ini menyediakan arahan khusus untuk Centos7 (ia juga digunakan untuk RHEL7). Untuk Debian saya boleh menemui banyak dokumentasi dan artikel "bagaimana" di internet, tetapi tidak banyak untuk Centos7.
2.Apabila cuba menukar lokasi storan lalai Docker, kita mesti mengetahui beberapa maklumat penting.
Lokasi storan lalai yang sedang digunakan oleh Docker
Pemandu storan yang kini digunakan oleh Docker
Ruang storan baharu untuk imej dan bekas
Lokasi lalai Docker ialah /var/lib/docker, tempat semua imej dan bekas semasa disimpan. Jika anda mempunyai sebarang bekas yang sedang berjalan, hentikannya dan pastikan tiada bekas yang sedang berjalan, kemudian jalankan arahan berikut untuk menentukan pemacu storan yang sedang digunakan oleh Docker. (Anda akan mengetahui mengapa ia direkodkan dalam artikel kemudian)
# docker info
Dalam maklumat output, cari barisan Pemacu Storan dan catatkannya. Pada mesin hos saya ialah devicemapper. Langkah seterusnya ialah menghentikan perkhidmatan Docker
# sudo systemctl stop docker
Buat fail Drop-In
Langkah seterusnya ialah mencipta fail Drop-In "docker.conf" dalam direktori /etc/systemd/system/docker.service.d Folder docker.service.d lalai. Jadi anda perlu menciptanya terlebih dahulu.
# sudo mkdir /etc/systemd/system/docker.service.d # sudo touch /etc/systemd/system/docker.service.d/docker.conf
Sebab untuk mencipta fail Drop-In ialah kami mahu perkhidmatan Docker menggunakan parameter khusus yang disebut dalam fail docker.conf untuk mengatasi parameter yang digunakan oleh perkhidmatan lalai dalam /lib/systemd/system/docker.service fail . Jika anda ingin mengetahui lebih lanjut tentang Drop-In, sila baca dokumentasi system.unit
Tentukan lokasi storan baharuSekarang buka docker.conf dan tambah kandungan berikut:
# sudo vi /etc/systemd/system/docker.service.d/docker.conf [Service] ExecStart= ExecStart=/usr/bin/dockerd --graph="/mnt/new_volume" --storage-driver=devicemapper
Simpan dan keluar dari editor VI, /mnt/new_volume ialah lokasi storan baharu dan devicemapper ialah pemacu storan yang sedang digunakan oleh pekerja pelabuhan. Jika pemacu storan anda berbeza, masukkan nilai yang anda semak dan catatkan dalam langkah sebelumnya. Maklumat lanjut tentang pelbagai pemacu storan tersedia dalam dokumentasi Docker rasmi. Sekarang, anda boleh memuatkan semula daemon perkhidmatan dan memulakan perkhidmatan Docker. Ini akan berubah tempat imej dan bekas baharu disimpan.
# sudo systemctl daemon-reload # sudo systemctl start docker
Untuk mengesahkan bahawa semuanya baik-baik saja, jalankan arahan # docker info untuk menyemak direktori root Docker Ia akan ditukar kepada /mnt/new_volume
Apakah yang perlu anda lakukan jika anda sudah mempunyai bekas dan imej sedia ada?Jika anda ingin memindahkan bekas dan imej sedia ada ke lokasi baharu, jangan muatkan semula daemon dan mulakan perkhidmatan docker selepas mengubah suai docker.conf, (
Nota: Saya belum mencuba perkara berikut kerana saya tidak perlu menyimpan bekas dan imej sedia ada, tetapi langkah ini sepatutnya berfungsi; sila komen di bawah jika anda menghadapi sebarang masalah dan sebarang kaedah alternatif. Saya akan mengubah suai siaran. Sebelum anda mengambil risiko, sandarkan data anda.
# cp -rp /var/lib/docker /mnt/new_volume
Buat pautan lembut (
# mv /var/lib/docker /var/lib/docker-backup-2017-0510 # ln -s /mnt/new_volume/docker /var/lib/docker
Kemudian muat semula daemon dan mulakan perkhidmatan docker. (
# sudo systemctl daemon-reload # sudo systemctl start docker
Data sedia ada kini sepatutnya berada dalam direktori sumber pautan lembut, dan bekas serta imej baharu akan disimpan di lokasi baharu, iaitu /mnt/new_volume/docker untuk mengesahkan.
(
...Tinggalkan output
Name: docker ID: 5WBA:EF4D:WQ7P:DVRN:JCI4:LWDT:XSR2:G7RE:F5TI:PD3B:A57K:E4QA Docker Root Dir: /mnt/new_volume/docker
...Tinggalkan output
Catatan: Fon dengan huruf condong dan garis mendatar dalam teks bermaksud kesilapan yang dilakukan oleh pengarang asal (Bahasa Inggeris tidak bagus, jika anda salah faham maksud teks asal, sila nyatakan tepat pada masanya dan jangan ragu untuk memberi pencerahan kepada saya ). Terdapat nota dalam jawatan yang berkaitan .
Atas ialah kandungan terperinci Tukar imej lalai dan laluan storan kontena Docker pada CentOS. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!