Rumah >Operasi dan penyelenggaraan >Docker >Bagaimana untuk menyalin sistem fail dalam docker

Bagaimana untuk menyalin sistem fail dalam docker

PHPz
PHPzasal
2023-04-18 10:26:082813semak imbas

Docker ialah alat virtualisasi popular yang memudahkan untuk membina, menerbitkan dan menjalankan aplikasi. Ia berdasarkan teknologi kontena dan menggunakan berbilang lapisan untuk mengurus pelbagai kebergantungan aplikasi, yang boleh mengasingkan aplikasi sepenuhnya dan menjadikannya lebih mudah alih dan berskala. Apabila menggunakan Docker, kita selalunya perlu menyalin sistem fail berbilang bekas. Di sini kami akan memperkenalkan cara Docker menyalin sistem fail untuk memudahkan pemindahan dan perkongsian fail antara bekas yang berbeza.

1. Gunakan arahan cp docker

Antara muka baris arahan Docker menyediakan arahan cp Dockerfile, yang boleh digunakan untuk menyalin fail ke bekas atau menyalin fail dari bekas ke tempatan. Penggunaannya adalah seperti berikut:

docker cp [OPTIONS] CONTAINER:SRC_PATH LOCAL_DEST_PATH
docker cp [OPTIONS] LOCAL_SRC_PATH CONTAINER:DEST_PATH

di mana CONTAINER mewakili nama bekas atau ID bekas; SRC_PATH mewakili direktori atau fail dalam bekas, yang disambungkan kepada nama kontena melalui :; LOCAL_DEST_PATH mewakili laluan sistem fail tempatan, yang mewakili laluan dari Bekas disalin ke tempatan LOCAL_SRC_PATH mewakili laluan sistem fail tempatan, yang bermaksud disalin dari setempat ke bekas. Kita boleh memasukkan arahan berikut dalam terminal untuk menyalin fail dalam bekas ke setempat:

docker cp my-container:/path/to/file /local/destination

Ini akan menyalin fail my-container dalam bekas /path/to/file ke direktori /local/destination.

Kami juga boleh menggunakan kad bebas untuk menyalin keseluruhan direktori, seperti:

docker cp my-container:/path/to/dir/* /local/destination

Ini akan menyalin semua fail dan sub-fail dalam direktori my-container dalam bekas /path/to/dir kepada /local/destination Jadual kandungan.

2. Salin fail ke bekas lain dalam rangkaian yang sama

Kami sering memautkan berbilang bekas dalam rangkaian yang sama untuk penemuan perkhidmatan dan komunikasi antara bekas. Dalam kes ini, kita boleh menggunakan perintah docker cp untuk menyalin fail ke bekas lain dalam rangkaian yang sama. Pertama, kita perlu mengetahui alamat IP bekas yang ingin kita salin. Kita boleh mendapatkan alamat IP bekas dengan menjalankan arahan berikut:

docker inspect --format '{{ .NetworkSettings.IPAddress }}' CONTAINER_NAME_OR_ID

Ini akan mengembalikan alamat IP bekas. Kami kemudiannya boleh menyalin fail ke bekas lain menggunakan arahan berikut:

docker cp /local_path/file.txt CONTAINER_NAME_OR_ID:/path/within/container/

Ini akan menyalin fail tempatan ke bekas lain dalam rangkaian yang sama.

3. Salin fail ke hos Docker jauh

Jika kami ingin menyalin fail ke hos Docker jauh, kami perlu menggunakan SSH. SSH membolehkan kami mewujudkan sambungan jauh yang selamat dan menjalankan arahan di dalamnya. Mula-mula, kami perlu memastikan kami telah menambah kunci SSH hos Docker jauh yang ingin kami sambungkan ke cincin kunci kami. Kami kemudiannya boleh menyalin fail menggunakan arahan berikut:

docker cp /local_path/filename.txt ssh://user@remotehost:/path/within/container/filename.txt

Ini akan menyalin fail ke direktori yang ditentukan pada hos jauh. Sila ambil perhatian bahawa apabila menyambung ke hos Docker jauh melalui SSH, pengguna mesti mempunyai kebenaran yang mencukupi untuk mengakses hos dan bekas jauh.

Ringkasan

Melalui kaedah di atas, kita boleh menggunakan arahan cp docker untuk menyalin sistem fail untuk memudahkan pemindahan dan perkongsian fail antara bekas yang berbeza. Dengan pendekatan ini, kami boleh melaksanakan banyak senario yang berbeza, seperti menyalin fail dari satu bekas ke bekas yang lain, menyalin fail dari bekas ke tempatan atau menyalin fail ke hos Docker jauh. Ini menjadikan Docker lebih fleksibel dalam penggunaan sebenar, membolehkan kami bertindak balas dengan lebih baik kepada pelbagai keperluan.

Atas ialah kandungan terperinci Bagaimana untuk menyalin sistem fail dalam docker. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn