Masalah. Saya memiliki file SQL dan wadah buruh pelabuhan. Bagaimana Anda memasukkan file SQL lokal di PC ke wadah buruh pelabuhan?
Pertama temukan wadah buruh pelabuhan
docker psIni akan mencantumkan banyak id kontainer. Temukan yang berhubungan dengan mysql
CONTAINER ID IMAGE ... [YourContainerId] mysql:5.7.29 ...CONTAINER ID IMAGE _Sekarang salin file sql menggunakan docker cp ke dalam wadah kami
docker cp your.sql [YourContainerId]:/your.sqlSetelah selesai, kita perlu masuk ke wadah kita dan mengimpor ke database mysql kita
docker exec -it [YourContainerId] bin/bashSetelah kita masuk, sekarang kita bisa masuk ke mysql
mysql -u root -p _Untuk melihat database Anda, jalankan show databases;
Pilih database yang akan Anda impor
use your-database-nameSekarang impor dengan menjalankan
source your.sql _Menjalankan aplikasi Anda di mesin yang berbeda bisa sangat menegangkan karena pengelolaan lingkungan. Docker memecahkan masalah ini dengan menggunakan teknologi containerisasinya, yang menggunakan image Docker. Jika Anda baru di Docker atau ingin memoles keterampilan Anda, baca posting berikut di mana saya telah membahas beberapa dasar
Cara Memasang Direktori Di Dalam Kontainer Docker
Fokus pada penulisan kode tanpa mengkhawatirkan pengelolaan lingkungan
menuju ilmu data. com
Setelah menyelesaikan tutorial ini, Anda akan segera menguji kueri MySQL apa pun menggunakan Docker. Metode ini akan menghemat waktu dan tenaga karena Anda tidak perlu menginstal atau mengkonfigurasi MySQL
Mempersiapkan
Pertama, Anda perlu menginstal Docker. Untuk contoh ini, kami akan menggunakan file penulisan Docker, file SQL yang berisi data bootstrap, juga dikenal sebagai mysql-dump dan macOS. Kita harus meletakkan file docker-compose.yml dan school.sql di dalam folder yang sama. Nama folder yang digunakan dalam pengaturan ini adalah MySQL-Snippets
- Komposisi Docker. Kita dapat menggunakan komposisi Docker untuk menjalankan banyak kontainer dan menentukan propertinya di dalam file YAML. Wadah ini dikenal sebagai layanan. Akan sangat membantu bila aplikasi Anda memiliki banyak tumpukan, seperti server web dan server basis data
- MySQL-dump. Dump mysql berisi kueri MySQL dalam teks biasa. Klien baris perintah MySQL dapat menjalankan perintah ini dan mengirimkannya ke server MySQL
Mari kita uraikan masing-masing bahan dari file docker-compose.yml
version: '3.1'services:
db:
image: mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test_db
ports:
- "3307:3306"
volumes:
- $HOME/Desktop/MySQL-Snippets/school.sql:/school.sql
Pertama, kami menggunakan tag versi untuk menentukan format file Compose, yaitu 3. 1. Ada format file lain — 1, 2, 2. x, dan 3. x. Dapatkan informasi selengkapnya tentang format file Compose dari dokumentasi Docker di sini
Kami mengikuti tag versi kami dengan hash layanan. Di dalamnya, kita harus menentukan layanan yang ingin kita gunakan untuk aplikasi kita. Untuk aplikasi kami, kami hanya memiliki satu layanan bernama db
Untuk membuat proses penyiapan kami cepat dan mudah, kami menggunakan gambar resmi MySQL yang telah dibuat sebelumnya untuk tag gambar
Saat kami menggunakan always untuk tag mulai ulang, penampung selalu dimulai ulang. Itu bisa menghemat waktu. Misalnya, Anda tidak perlu memulai wadah setiap kali Anda mem-boot ulang mesin secara manual. Itu me-restart wadah ketika daemon Docker dimulai ulang atau wadah itu sendiri dimulai ulang secara manual
Di bawah tag lingkungan, kami telah menentukan variabel lingkungan, yang akan kami gunakan untuk otentikasi basis data
Tag port digunakan untuk mendefinisikan port host dan kontainer. Ini memetakan port 3307 pada host ke port 3306 pada wadah
Terakhir, tag volume digunakan untuk memasang folder dari mesin host ke wadah. Ini terdiri dari dua bidang yang dipisahkan oleh titik dua. Bagian pertama adalah jalur di mesin host. Bagian kedua adalah jalur di dalam wadah. Hapus bagian ini jika Anda tidak ingin memasang mysql-dump ke dalam container
Bagus, Anda telah menyelesaikan penyiapan untuk pos ini. Sekarang jalankan perintah berikut dari direktori yang sama di mana file docker-compose.yml berada. Perintah docker compose up memulai dan menjalankan seluruh aplikasi Anda
docker compose up_Sekarang jalankan perintah docker compose up0 pada mesin host untuk melihat daftar wadah Anda yang sedang berjalan. Seperti yang bisa kita lihat, kita memiliki container yang sedang berjalan bernama docker compose up1
buruh pelabuhan ps
Kita juga dapat melihat gambar dibuat dengan menjalankan perintah docker compose up2
docker compose up_2
Akses container yang sedang berjalan docker compose up1 dengan menjalankan perintah berikut
docker exec -it mysql-snippets_db_1 bashPerintah docker compose up5 memungkinkan kita untuk memasuki wadah yang sedang berjalan. Bendera docker compose up_6 (sering ditulis sebagai docker compose up7) digunakan untuk mengakses wadah dalam mode interaktif. Sekarang kami memberikan nama wadah yang ingin kami akses, yang dalam hal ini docker compose up8. Perintah docker compose up9 digunakan untuk mendapatkan bash shell di dalam wadah, sehingga kita dapat mengakses baris perintah MySQL dan menjalankan kueri MySQL
Anda baru saja selesai menyiapkan penampung. Sekarang, kita akan membahas cara terhubung ke server MySQL
Hubungkan ke server MySQL
Sambungkan ke server MySQL menggunakan nama pengguna dan kata sandi Anda sebagai docker exec -it mysql-snippets_db_1 bash0. Setelah terhubung ke server, Anda dapat menjalankan perintah MySQL
mysql -uroot -prootIni contoh yang bisa Anda coba
Kita bisa melihat database kita bernama test_db, didefinisikan di dalam file Compose kita. Untuk memilih database, jalankan perintah docker exec -it mysql-snippets_db_1 bash1. Gunakan perintah docker exec -it mysql-snippets_db_1 bash_2 untuk menampilkan semua tabel database test_db kita. Ketik docker exec -it mysql-snippets_db_1 bash_3 untuk menghapus konsol
Karena kami tidak memiliki tabel apa pun, perintah docker exec -it mysql-snippets_db_1 bash2 mengembalikan set kosong. Sekarang Anda telah mengonfirmasi bahwa Anda telah terhubung ke server MYSQL, dan Anda dapat melanjutkan ke langkah berikutnya
Memuat data dari file
Sekarang kita dapat memuat dump MySQL ke database docker exec -it mysql-snippets_db_1 bash5 kita. Yang dalam hal ini school.sql. Itu dapat diakses di dalam wadah karena kami telah memasangnya dari mesin host
mysql -uroot -p test_db < school.sqlSambungkan ke server MySQL menggunakan nama pengguna docker exec -it mysql-snippets_db_1 bash0. Masukkan kata sandi docker exec -it mysql-snippets_db_1 bash_0untuk mengautentikasi. Sekarang kami menyetel database default ke docker exec -it mysql-snippets_db_1 bash5. mysql -uroot -proot_0 bersama dengan nama file digunakan untuk mengirim perintah ke server
impor mysql dump ke sql server
Jika kita menjalankan perintah MySQL mysql -uroot -proot_1, kita dapat melihat dua tabel yang disebut tanda dan siswa di dalam database kita docker exec -it mysql-snippets_db_1 bash5, yang didefinisikan di dalam school.sql
Bungkus
Database relasional seperti MySQL sering digunakan dalam industri, jadi ini adalah topik yang ingin Anda pahami secara menyeluruh. Sekarang setelah Anda menyelesaikan tutorial dasar ini, Anda dapat mendalami lebih dalam menjelajahi MySQL dengan Docker. Anda dapat menemukan lebih banyak perintah MySQL di sini. Docker telah merevolusi cara kami mengelola lingkungan, termasuk pengembangan, pengujian, dan produksi. Itu sebabnya Anda harus memperoleh keterampilan ini untuk keperluan pribadi dan industri. Saya harap ini akan membantu Anda memulai dengan MySQL dan Docker