Kembali pada Maret 2021, saya menulis tentang bagaimana saya mengganti Docker dengan Podman di Mac menggunakan VirtualBox dan Vagrant setelah mesin podman versi lama tidak digunakan lagi. Pada bulan yang sama, versi baru podman machine
dirilis, yang membuat artikel saya menjadi usang dan menyebabkan sedikit kebingungan.
Menggunakan podman machine
fungsi perintah jauh lebih mudah sekarang, seperti yang dijelaskan Brent Baude di Bagaimana Podman berjalan di Mac dan FAQ kontainer lainnya. Saat saya pindah dari pengaturan VirtualBox/Vagrant saya, saya ingin mengunjungi kembali topik ini jika desain Anda mirip dengan saya. Berikut adalah beberapa tips yang saya temukan saat pindah ke podman machine
; mudah-mudahan, dengan membagikannya, saya akan membantu beberapa orang!
Dari Vagrant ke mesin podman
Saya akan menganggap Anda menginstal podman menggunakan Homebrew. Hal pertama yang harus dilakukan adalah mendapatkan Podman versi terbaru dengan menjalankan:
$ brew upgrade podman
Jika Anda seperti saya dan menginginkan hasil yang cepat, lanjutkan dan jalankan perintah ini setelah pemutakhiran:
$ podman machine init
$ podman machine start
Ketika saya menjalankan ini, init
perintah bekerja seperti pesona, tetapi start
perintah tidak senang dan memberi tahu saya:
Error: unable to start host networking: "could not find \"gvproxy\" in one of [/usr/local/opt/podman/libexec /opt/homebrew/bin /opt/homebrew/opt/podman/libexec /usr/local/bin /usr/local/libexec/podman /usr/local/lib/podman /usr/libexec/podman /usr/lib/podman]"
Setelah beberapa pencarian di internet, saya menemukan rekomendasi untuk menambahkan baris berikut ke ~/.config/containers/containers.conf
berkas:
helper_binaries_dir=["/usr/local/Cellar/podman/3.4.1/bin","/usr/local/Cellar/podman/3.4.1/libexec"]
CATATAN :Ini adalah masalah yang cukup baru, dan dapat diselesaikan di rilis Podman yang lebih baru. Seperti yang Anda lihat, saya menggunakan 3.4.1. Versi ini pasti memecahkan gvproxy
kesalahan, tapi di sinilah pengaturan Vagrant saya membuat saya tersandung. Saya menjalankan ulang podman machine start
perintah, tetapi masih tidak senang, mengatakan tidak dapat terhubung karena failed sshClient
yang gagal kesalahan. Saya memutuskan untuk melihat koneksi Vagrant lama saya dengan menjalankan:
$ podman system connection list
Saya perhatikan koneksi Vagrant masih ada sebagai koneksi default. Saya dengan cepat mengubah default dan menghapus koneksi Vagrant, tetapi saya masih mendapatkan kesalahan yang sama. Jadi, saya menjalankan perintah berikut untuk mendapatkan lebih banyak informasi debug:
$ podman --log-level=debug ps
INFO[0000] podman filtering at log level debug
DEBU[0000] Called ps.PersistentPreRunE(podman --log-level=debug ps)
DEBU[0000] SSH Ident Key "/Users/dmeurer/Dev/images/podman/.vagrant/machines/default/virtualbox/private_key" SHA256:EhLJssA0acBO7LQVx8UrHzQPeVXB2gwn+a+wXdOaCKY ssh-rsa
DEBU[0000] Found SSH_AUTH_SOCK "/private/tmp/com.apple.launchd.b6hyl78H5X/Listeners", ssh-agent signer(s) enabled
Cannot connect to Podman. Please verify your connection to the Linux system using `podman system connection list`, or try `podman machine init` and `podman machine start` to manage a new Linux VM
Error: unable to connect to Podman. failed to create sshClient: Connection to bastion host (ssh://[email protected]:2222/run/podman/podman.sock) failed.: dial tcp 127.0.0.1:2222: connect: connection refused
Karena saya tidak ingat apa yang saya makan untuk sarapan hari ini, apalagi sesuatu yang saya lakukan beberapa bulan yang lalu, saya kembali ke artikel saya sebelumnya untuk melihat apakah sesuatu yang saya lakukan mungkin memaksa Podman untuk menggunakan kunci pribadi Vagrant itu. Yah, benar saja, itu dia di langkah 6! Variabel global masih memberi tahu Podman untuk menggunakan pengaturan kunci SSH Vagrant. Yang perlu saya lakukan hanyalah mematikan CONTAINER_HOST dan CONTAINER_SSHKEY baris dari ~/.zshrc
saya file, dan podman machine start
bekerja seperti yang diiklankan.
Jadikan aplikasi macOS
Sekarang podman machine
bekerja dengan baik di Mac saya, saya ingin memastikan aplikasi Seals macOS yang saya gunakan di artikel sebelumnya berfungsi. Di artikel itu, saya membuat skrip Bash shell bernama pman
untuk memulai dan menghentikan pengaturan VirtualBox dan Vagrant saya dengan cepat, dan saya membuat aplikasi bernama Seals untuk membuat skrip lebih mudah dijalankan. pman
. yang baru skrip membutuhkan beberapa penyesuaian untuk menggunakan podman machine
:
#!/bin/bash
ACTION=$1
case $ACTION in
"down")
echo "Shutting down podman machine"
podman machine stop
;;
"up")
echo "STARTING podman machine"
podman machine start
;;
"init")
echo "CREATING a new podman machine"
podman machine init
;;
esac
Saya kemudian mencoba aplikasi Seals macOS saya, dan saya mendapatkan podman not found
yang menarik kesalahan. Jadi, saya membuka Automator di Mac saya, pilih Open an Existing Document... , dan membuka aplikasi Seals.
[ Pelajari lebih lanjut tentang Red Hat OpenShift Container Platform. ]
Anda mungkin tidak perlu melakukan ini tergantung di mana executable Podman Anda berada. Saya membuat symlink Podman di direktori bin lokal, jadi saya harus bermain-main dengan baris ekspor pertama untuk memastikan Podman saya dapat dieksekusi.
Anda harus memperbarui jalur pada tangkapan layar di atas ke tempat Anda menyimpan dan menamai skrip Bash. Setelah saya mendapatkan jalur yang benar, aplikasi Seals saya berfungsi dengan baik.
Jika Anda bertanya-tanya bagaimana saya memasang logo Podman ke aplikasi macOS saya, inilah prosesnya. Saya menemukan logo Podman dan membuat gambar PNG 128x128 dengan GIMP untuk digunakan sebagai ikon Aplikasi dengan langkah-langkah ini:
- Buka PNG 128x128 dalam pratinjau dan klik Edit> Salin .
- Klik kanan aplikasi baru, dan klik Dapatkan Info .
- Pilih ikon di kiri atas, dan tempel konten papan klip.
Sekarang Anda dapat menggunakan Alfred atau Spotlight untuk meluncurkan Podman dengan cepat dan mengosongkan milidetik berharga dari hari kerja Anda untuk fokus pada hal-hal yang penting… seperti makan siang lebih awal!
Ringkasan
Saya harap ini akan membantu orang-orang yang mencari cara mudah untuk meluncurkan Podman di macOS atau menggunakan pengaturan Vagrant yang mirip dengan yang saya dokumentasikan. Alasan utama saya mengunjungi kembali topik ini adalah karena pembaruan Podman membuat artikel saya sebelumnya menjadi usang, dan sekarang jauh lebih mudah menggunakan Podman di macOS karena mesin podman. Anda tidak perlu lagi VirtualBox dan Vagrant, cukup Podman! Selamat berkemas!
Catatan editor:Artikel ini awalnya diterbitkan pada Maret 2021 dan telah diperbarui.