Docker VM pada OS X diinstal tetapi perintah tampaknya gagal

Saya sedang menyiapkan Docker di mesin Mac OS X lokal saya dan mengalami beberapa masalah untuk membuatnya berfungsi. Saya telah mengikuti petunjuk instalasi di https://docs.docker.com/installation/mac/. Semuanya hingga menginstal alat boot2docker tampaknya berjalan lancar, tetapi setelah VM berjalan, perintah Docker tampaknya tidak melakukan apa-apa. Misalnya.,

$ docker run ubuntu echo hello world2014/06/17 08:20:54 Post http://localhost:4243/v1.12/containers/create: EOF

Setiap perintah berakhir di EOF dan tampaknya tidak melakukan apa yang seharusnya dilakukan. Berikut ini lain:

$ docker ps2014/06/17 08:25:10 Get http://localhost:4243/v1.12/containers/json: EOF

VM yang dibuat oleh alat boot2docker juga berjalan:

$ boot2docker status[2014-06-17 08:26:24] boot2docker-vm is running.

Saya merasa ada sesuatu yang tidak diatur dengan benar, tetapi saya mengikuti instruksi baris demi baris dan tidak dapat melihat di mana ada sesuatu yang salah.

Bantuan apa pun sangat dihargai, terima kasih!

Pembaruan 1

versi boot2docker: 1.0.0 atau 0.9.1 (Tidak yakin-tidak ada bendera versi AFAICT)

$ boot2docker ipUsage /usr/local/bin/boot2docker {init|start|up|save|pause|stop|restart|status|info|delete|ssh|download}

Pada contoh boot2docker:

$ sudo netstat -ntpl | grep dockertcp        0      0 :::2375                 :::*                    LISTEN      743/docker$ docker --versionDocker version 1.0.0, build 63fe64c

Pembaruan 2

Saya baru saja menginstal ulang boot2docker dan sekarang saya pasti menjalankan 1.0.0.

$ boot2docker versionClient version: v1.0.0Git commit: 2fef7b2

Saya juga menjalankan kembali perintah dalam dokumentasi (yang bertentangan dengan apa yang diperintahkan perintah kepada saya untuk mengatur DOCKER_HOST pada baris perintah, lihat di bawah):

$ boot2docker up2014/06/17 18:25:43 Waiting for VM to be started................................2014/06/17 18:26:41 Started.2014/06/17 18:26:41 Auto detection of the VM's IP address.2014/06/17 18:26:41 To connect the Docker client to the Docker daemon, please set:2014/06/17 18:26:41     export DOCKER_HOST=tcp://:4243

Tapi saya masih melihat masalah aslinya.

$ docker run ubuntu echo hello world2014/06/17 18:28:29 Post http://127.0.0.1:4243/v1.12/containers/create: EOF

Saya kemudian menjalankan kembali perintah yang disebutkan dalam dokumentasi:

$ export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375

Dan sekarang lihat ini:

$ docker run ubuntu echo hello world2014/06/17 18:31:39 Cannot connect to the Docker daemon. Is 'docker -d' running on this host?

Saya harus menyebutkan bahwa mencoba untuk menjalankan docker -d pada OS X tunas keluar pesan ini:

$ docker -d2014/06/17 18:34:04 The Docker daemon is only supported on linux

Yang tidak banyak membantu...

Beberapa hal untuk memeriksa:

Versi terbaru dari boot2docker

Periksa apakah boot2docker Anda sudah diperbarui. Jika Anda telah menginstal melalui aplikasi seperti Homebrew, Anda mungkin menjalankan versi yang lebih lama. Periksa rilis resmi di https://github.com/boot2docker/osx-installer/releases. Pastikan untuk menjalankan boot2docker delete dan kemudian boot2docker init setelah upgrade.

Diperbarui Docker klien

Mungkin ide yang baik untuk menjalankan klien buruh pelabuhan yang cocok dengan versi server yang berjalan di boot2docker. Jika Anda menjalankan Docker 1.0 di boot2docker, pastikan Anda memiliki klien 1.0 dari https://github.com/boot2docker/osx-installer/releases.

Ekspor port yang benar

Port dalam perintah Anda mungkin tidak benar. Apakah anda ingat untuk berlari export DOCKER_HOST=tcp://$(boot2docker ip 2>/dev/null):2375 seperti dokumentasi mengatakan? Port 2375 adalah default baru untuk Docker 1.0 (yang ada di boot2docker 0.9.1 dan 1.0.0).

Teruskan port yang benar

Setelah memperbarui DOCKER_HOST untuk klien, Anda mungkin mengalami masalah dengan boot2docker 0.9.1 yang menggunakan port yang salah untuk koneksi TCP Docker. Langkah-langkah untuk memeriksa:

  1. Login ke BOOT2DOCKER VM menggunakan boot2docker ssh (password adalah tcuser).
  2. Kemudian periksa port mendengarkan menggunakan sudo netstat -ntpl | grep docker (mungkin 2375).
  3. Sekarang buka VirtualBox, buka Pengaturan BOOT2DOCKER VM, lalu klik Port Forwarding tombol.
  4. Itu harus cocok dengan port mendengarkan di boot2docker (mungkin 2375).
  5. Jika port tidak cocok, coba perbarui penerusan port, lalu coba klien lagi.

Andy membawaku 99% dari perjalanan ke sana. Saya menandai jawabannya sebagai jawaban yang diterima, tapi saya akan menulis di sini apa yang memecahkan masalah saya. Setelah menginstal versi yang benar (1.0.0) dari boot2docker, saya masih mendapatkan output yang salah dari perintah Docker apa pun.

Saya kemudian membuka VirtualBox dan membaca port, dan, lihatlah, port tidak benar. Namun, mengalihkannya ke nilai yang benar tidak memperbaiki masalah.

Saya memutuskan untuk mengatur ulang VM, karena boot2docker lama mungkin salah mengaturnya. Perintah berikut akhirnya memperbaiki masalah.

$ boot2docker delete$ boot2docker init$ export DOCKER_HOST=tcp://:2375

Mengapa ini off topic? Sepertinya pertanyaan yang sangat valid bagi saya. Saya mengalami masalah serupa.

Bisakah anda memberikan sedikit lebih banyak informasi debugging? versi boot2docker setidaknya? Mungkin juga SSH ke BOOT2DOCKER VM dan mendapatkan output` docker-version’? Saya menduga ini adalah masalah penerusan port VM dengan boot2docker terbaru yang ditingkatkan ke Docker 1.0, yang menggunakan port baru.

Tampaknya port klien Anda salah (setidaknya untuk Docker 1.0). Saya membuat jawaban dengan dua kemungkinan masalah yang mungkin terjadi.

@ AndyShinn rupanya, mengajukan pertanyaan tentang" lingkungan pengembangan " adalah alasan untuk penutupan. Tebak seseorang harus bertanya-tanya* di mana * seseorang dapat mengajukan pertanyaan seperti ini tanpa ditutup…