Machine: [Permintaan Fitur] Tentukan IP statis untuk VM VirtualBox

Dibuat pada 16 Agu 2015  ·  212Komentar  ·  Sumber: docker/machine

Hai, Saya telah mencari melalui dokumen dan masalah untuk mencari tahu ini tetapi tidak dapat menemukan jawaban.

Pada dasarnya, saya ingin dapat menentukan alamat IP VM (yaitu nilai yang tercantum di bawah "URL" di docker-machine ls ) ketika saya membuatnya dengan docker-machine create .

Saya menginginkan ini karena saya telah mengandalkan alamat default boot2docker 192.168.59.103, tetapi sekarang bervariasi dari mesin ke mesin.

Terima kasih!

drivevirtualbox kinenhancement

Komentar yang paling membantu

Teman-teman, ayo. Bisakah kami menghentikan +1 pada masalah yang sudah berjalan lama? Ada tombol Suka yang diterapkan karena alasan tertentu. Tidak perlu mengirim spam ke pelanggan.

Semua 212 komentar

+1, perlu fitur ini

+1

+1

+1

Inilah solusi yang bagus. Tambahkan yang berikut ini ke ~/.bash_profile :

eval `docker-machine env <docker-machine name>`
export <some variable>=$(docker-machine ip <docker-machine name>)

@letsgolesco Anda dapat menggunakan opsi --virtualbox-hostonly-cidr untuk itu, yang akan memilih adaptor khusus host vboxnetX .

Secara default, tampaknya docker-machine mengambil satu secara acak, jadi terpaksa menggunakannya untuk vboxnet0 ( 192.168.59.3/24 , yang digunakan oleh boot2docker) tampaknya menyelesaikan masalah:

$ docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "192.168.59.3/24" dev
Creating VirtualBox VM...
Creating SSH key...
Starting VirtualBox VM...
Starting VM...
To see how to connect Docker to this machine, run: docker-machine env dev

$ docker-machine ip dev
192.168.59.103

Bersulang.

@luislavena - Sayangnya itu tidak berhasil.

+1

Pasti membutuhkan fitur ini!

@krinkere tidak yakin env Anda, tetapi ini berhasil untuk instalasi OSX saya dengan melakukan itu, tetapi gagal ketika menggunakan mesin di Linux, yang memerlukan tweak ke konfigurasi dhcpserver vboxnet0 :

$ VBoxManage dhcpserver modify --ifname vboxnet0 --disable

$ VBoxManage dhcpserver modify --ifname vboxnet0 --ip 192.168.59.3 --netmask 255.255.255.0 --lowerip 192.168.59.103 --upperip 192.168.59.203

$ VBoxManage dhcpserver modify --ifname vboxnet0 --enable

$ docker-machine create --driver "virtualbox" --virtualbox-cpu-count "-1" --virtualbox-disk-size "30000" --virtualbox-memory "2560" --virtualbox-hostonly-cidr "192.168.59.3/24" dev

Ini, seperti yang Anda lihat, peretasan besar :smile_cat:, tetapi berfungsi untuk saat ini :smile:

Akan senang melihat fitur ini!!

@luislavena - Terima kasih atas tanggapan Anda

Inilah yang saya dapatkan di Mac saya.

$ docker-machine buat --driver virtualbox --virtualbox-hostonly-cidr "192.168.99.3/24" dev
Membuat VirtualBox VM...
Membuat kunci SSH...
Memulai VirtualBox VM...
Memulai VM...
Untuk melihat cara menghubungkan Docker ke mesin ini, jalankan: docker-machine env dev

$ pengembang ip mesin buruh pelabuhan
192.168.99.100

Meskipun saya memiliki ip di subnet yang tepat, itu bukan IP yang ingin saya gunakan... Pasti akan senang melihat fitur ini

+1 fitur yang berguna

+1 Fitur ini akan sangat membantu kami!

Kami menggunakan mesin buruh pelabuhan untuk menjalankan cluster Elasticsearch lokal dan kami memiliki entri /etc/hosts untuk 192.168.59.103 yang memetakan ke elastic-local.mycompany.com . Karena kami telah pindah ke mesin buruh pelabuhan dari boot2docker, kami harus terus memperbarui entri file host ini secara manual ke apa pun IP baru yang ditetapkan untuk VM buruh pelabuhan kami. Kami dapat menulis beberapa otomatisasi yang akan memperbarui entri file host ini untuk kami, tetapi akan jauh lebih sederhana jika mesin buruh pelabuhan membiarkan kami menggunakan alamat IP yang dapat dikonfigurasi untuk mesin baru.

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1

+1 (dan)

+1

+1

+1

Untuk sementara saya menggunakan beberapa skrip bash untuk memperbarui file host tetapi kludgy karena Anda harus memperbarui /etc/hosts melalui skrip Sudo'd tetapi karena Anda bisa mendapatkan ip dari mesin buruh pelabuhan itu berfungsi. Saya dapat berbagi inti.

ianlintner-wf, tolong bagikan skripnya. Saya sendiri akan menulis yang persis seperti itu, tetapi jika saya tidak dapat menemukan kembali roda itu akan bagus.. ya..

Berikut adalah skrip utama yang saya gunakan. Saya membersihkannya sedikit, tetapi tidak memiliki parameter default yang lebih formal dan hal-hal lain.

https://Gist.github.com/ianlintner-wf/a2b917158aaf100d9fb3

+1 tolong!

terima kasih untuk skripnya @ianlintner-wf. Saya telah menulis satu yang secara dinamis menambahkan Host/ip dari semua mesin buruh pelabuhan yang sedang berjalan. Telah diuji pada OS X El Capitan.

https://Gist.github.com/cookandy/f14fadd31721dc6e136e

Peningkatan IP di-cache oleh server DHCP VirtualBox. Berhenti dan mulai ulang VirtualBox akan mengatur ulang kenaikan IP.

+1, pengembang OSX kami masih menggunakan boot2docker karena env kami bergantung pada entri /etc/hosts statis. (btw terima kasih untuk skripnya @ianlintner-wf )

+1

+1

+1

+1

+2

Solusi hacky-hack saya, yang jelas bukan untuk semua orang: Saya menjalankan Cassandra di mesin buruh pelabuhan, dan saya ingin bisa mendapatkannya dari aplikasi node.js yang saya kembangkan. Daripada menggunakan IP tetap untuk mesin buruh pelabuhan, saya melakukan:

docker-machine stop dockervm
VBoxManage modifyvm "dockervm" --natpf1 "tcp-port9160,tcp,,9160,,9160"
VBoxManage modifyvm "dockervm" --natpf1 "tcp-port9042,tcp,,9042,,9042"
docker-machine start dockervm
eval "$(docker-machine env dockervm)"

yang memungkinkan penerusan port untuk tunneling port dari localhost ke VM buruh pelabuhan. Sekarang saya hanya dapat terhubung ke localhost:9042. (Ini akan jauh lebih mudah jika seseorang memperbaiki https://github.com/docker/machine/issues/41. :D)

@luislavena terima kasih, baru saja membuat ulang mesin default dengan opsi ini dan semuanya berfungsi dengan baik sekarang

+1

+1, saya akan mencoba skrip dengan pembaruan otomatis file host, tetapi yang pasti saya menginginkan fitur ini!

Berdasarkan skrip @cookandy & @ianlintner-wf, saya telah membuat milik saya.

Anda dapat mengonfigurasinya dengan peta antara nama mesin buruh pelabuhan dan nama host.

Ini akan memperbarui host Anda dengan menghapus ip mesin buruh pelabuhan yang lebih lama dan yang baru

https://Gist.github.com/juliengarcia/9a208ca5cf6590b25150

+1

:+1:

+1

+1

:+1:

+1

+1

+1

Docker memberi tahu saya untuk membuat ulang sertifikat jika IP berubah, saya perlu mengatur IP statis untuk menghindari masalah ini atau ada solusi lain?

eval "$(docker-machine env machine-1)"

Error running connection boilerplate: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.101:2376": x509: certificate is valid for 192.168.99.108, not 192.168.99.101
You can attempt to regenerate them using 'docker-machine regenerate-certs name'.
Be advised that this will trigger a Docker daemon restart which will stop running containers.

+1 setiap ETA pada fitur ini?

Solusi untuk beberapa kasus penggunaan adalah dengan membuat mesin seperti:

192.168.98.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.98.1/24" m98

192.168.97.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.97.1/24" m97

192.168.96.100

docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.96.1/24" m96

Jika tidak ada mesin lain dengan cidr , mesin harus selalu mendapatkan IP .100 saat memulai.

@schmunk42 bekerja dengan sangat baik :+1:

Virtualbox saya memiliki rentang dhcp 192.168.99.100 - 255 dan saya ingin menetapkan IP sebelum 100.

Saya telah menemukan trik sederhana untuk mengatur IP statis: setelah membuat mesin saya menjalankan perintah ini dan restart mesin:

echo "ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh prova-discovery sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

Perintah ini membuat file bootsync.sh yang dicari oleh skrip startup boot2docker dan dieksekusi.

Sekarang selama mesin boot, perintah dijalankan dan mengatur IP statis.

docker-machine ls
NAME              ACTIVE   DRIVER       STATE     URL                                      SWARM
test-1                      -        virtualbox     Running   tcp://192.168.99.50:2376      test-1 (master)

Itu trik yang bagus juga @micheletedeschi :+1:

Saya suka cara @micheletedeschi memperbaiki ini. Sepertinya cara yang mudah dan standar yang tidak melibatkan modifikasi mesin buruh pelabuhan. Mungkin ini harus didokumentasikan di suatu tempat?

Anda dapat menemukan beberapa dokumentasi di sini atau di sini

+1
Saya bekerja dengan 3 VM dan saya selalu memiliki masalah untuk terhubung melalui ssh dan mengonfigurasi util, file host, dll.

+1

:+1:

+1

+1

+1

+1

+1 Saya mencoba mengotomatiskan pembuatan mesin dan tidak dapat mengharapkan izin untuk menambahkan entri ke /etc/hosts berulang kali. Memiliki ip yang stabil berarti hanya perlu mengatur ini sekali.

Saya akhirnya menyiapkan skrip yang mengisi dnsmasq di Host menggunakan ip mesin buruh pelabuhan

Pada 19 Des 2015, pukul 12:18, Pedro Cattori [email protected] menulis:

+1


Balas email ini secara langsung atau lihat di GitHub.

Fitur yang sangat berguna :+1:

Mencintai perbaikan @micheletedeschi , meskipun saya akhirnya meletakkan IP pada antarmuka virtual (ganti eth1 dengan eth1:1 pada perintah di atas) karena antarmuka eth1 menjalankan DHCP dan pada akhirnya akan kembali ke alamat IP yang ditetapkan DHCP.

Tidak yakin berapa lama waktu penyegaran sewa dhcp (berjalan selama sehari dengan perbaikan awal sebelum saya tiba-tiba mendapatkan kesalahan "Anda perlu membuat ulang sertifikat TLS" dan menyadari apa yang sedang terjadi). Akan melaporkan kembali jika menempatkan IP pada antarmuka virtual tidak menempel

@ drags Saya telah memperbarui perintah dengan:

echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh prova-discovery sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

kemudian jalankan perintah (hanya pertama kali)

docker-machine regenerate-certs prova-discovery

sekarang IP tidak akan diubah oleh DHCP

:+1:

+1

:+1:

+1

+1

+1

Adakah yang beruntung membuat skrip solusi @micheletedeschi ? Saya ingin satu perintah yang dapat dijalankan semua orang di tim untuk meluncurkan dev vm. Saya mencoba yang berikut ini:

docker-machine create -d virtualbox dev
echo "ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh dev sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
sleep 30
docker-machine restart dev
sleep 30
docker-machine regenerate-certs -f dev

Ketika saya menjalankan perintah secara manual itu berfungsi. Dalam skrip, saya harus memasukkan sleep 30 atau perintah restart hanya akan hang. Sekarang script berhasil selesai tapi setelah dijalankan vm masih berjalan dengan IP lama.

Anda bisa menggunakan gelandangan untuk meluncurkan mesin buruh pelabuhan dan kemudian menggunakan plugin seperti gelandangan-hostmanager. Tetapi tentu saja Anda memiliki masalah lain yang harus dihadapi jika Anda menginginkannya menjadi satu perintah untuk meluncurkan VM lintas platform.

Tidak ada Solusi Sempurna saat ini (afaict).

Ya, saya pikir saya akan tetap dengan Vagrant untuk saat ini.

Saya sedang membangun gambar kotak Vagrant dengan buruh pelabuhan berjalan dengan DOCKER_OPTS="-H 0.0.0.0:2375" . Kemudian saya dapat membuat vm gelandangan dengan IP hard-code jaringan pribadi dan menggunakan IP itu untuk mengatur DOCKER_HOST dan /etc/hosts, yang menurut saya akan menjadi pengaturan yang cukup ideal.

+1, terutama bekerja dengan driver mesin vmwarevsphere

+1

+1

+1

+1, hanya dapat mengatur alamat IP mesin. Saat ini CLI hanya mendukung mendapatkannya. Menggunakan AWS Elastic IP akan membutuhkan ini. Jika tidak, config.json mesin harus diperbarui secara manual.

~/.docker/machine/machines/my-machine-with-aws-elastic-ip/config.json

@dcosson wrt skrip.

Saya baru saja memulai mesin buruh pelabuhan kemudian menjalankan 2 perintah berikut (satu untuk membunuh klien dhcp, dua untuk mengatur ip statis). Saya memilih untuk tidak menjalankan 'docker restart' untuk memicu bootsync.sh. Mungkin skrip startup itu tidak berfungsi? Mungkin juga klien dhcp mengacaukan Anda dan mengatur ulang IP eth1 pada Anda.

echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh <machine-name> sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null
docker-machine ssh <machine-name> "sudo ifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 up"

+1

+1

Saya harus sedikit memodifikasi cuplikan @roocell untuk segera mematikan server dhcp karena saya tidak ingin mem-boot ulang. Kalau tidak, itu akan kembali setelah beberapa menit.

echo "kill `more /var/run/udhcpc.eth1.pid`\nifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh <machine-name> sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

docker-machine ssh <machine-name> "sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill"

docker-machine ssh <machine-name> "sudo ifconfig eth1 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255 up"

Saya merasa bahwa tidak menyetel ip statis pada mesin saya yang menjalankan konsul adalah apa yang memberi saya masalah sehubungan dengan swarm cluster saya. +1 untuk ini

+1

+1

+1

+1

+1

+1_000000 :)

+1

Berdasarkan komentar @micheletedeschi , berikut adalah skrip saya untuk mengatur IP tetap ke VM mesin buruh pelabuhan:
http://stackoverflow.com/a/35367277/6309

+1

+1

+1

+1

Apa yang telah saya lakukan adalah membuat salinan file host Anda di mana saja.

Tetapkan placeholder untuk bagian yang ingin Anda ubah secara dinamis

<docker-machine-ip> doctify.local.com
<docker-machine-ip> doctify.local.co.uk
<docker-machine-ip> www.doctify.local.com
<docker-machine-ip> www.doctify.local.co.uk

FYI: Saya menggunakan gnu-sed sebagai sed default saya sehingga tidak akan menjadi yang ada di mac Anda
brew install gnu-sed --with-default-names

dan dalam skrip awal saya, saya hanya menggantinya dan kemudian mengganti file host. Sekarang jika Anda memiliki salinan file host Anda sama seperti sebelumnya. itu tidak akan memengaruhi layanan Anda yang lain

#!/bin/bash

echo
echo "########################################################"
echo "####              Update Docker Dev Hosts           ####"
echo "########################################################"
echo

machine_name="doctify-dev"

update_hosts() {
    echo
    # Copy over default hosts file
    echo "Copy Default Hosts..."
    cp -fv nginx/hosts docker/hosts

    echo
    # Replace with actual ip address
    echo "Replace hosts file..."
    echo "$machine_name IP ($machine_ip)"
    sed -i -e "s|<docker-machine-ip>|$machine_ip|g" docker/hosts

    echo
    # Move to /etc/hosts
    echo "Move hosts to correct location..."
    sudo mv -fv docker/hosts /etc/hosts

    echo
    # Remove copied hosts file
    echo "Clean up hosts file if it still remains..."
    rm -rfv docker/hosts
}

echo
# Get Current IP
echo "Retrieving Current IP Address..."
ip=($(cat /etc/hosts | grep doctify.local.com | sed -n '1p'))
echo "Current IP: $ip"

echo
# Get IP address of docker machine
echo "Get Current Machine IP address..."
machine_ip=$(docker-machine ip $machine_name)
echo "Machine IP: $machine_ip"

echo
if [ "$ip" = "$machine_ip" ]; then
    echo "IP Addresses are matching. Exiting..."
else
    echo "IP Addresses differ. Updating..."
    update_hosts
fi

Mulai Skrip:

#!/bin/bash

echo
echo "########################################################"
echo "####            Start Docker Dev Environment        ####"
echo "########################################################"
echo

$machine_name=doctify-dev

echo
echo "Start Machine..."
docker-machine start $machine_name

echo
echo "Attach Machine to Terminal..."
eval $(docker-machine env --shell bash $machine_name)

echo
echo "Update hosts IP..."
source docker/update-hosts

echo
echo "Set Machine IP as Hostname..."
export DOCKER_HOST_IP=$(docker-machine ip $machine_name)

echo
echo "Clean Docker Images..."
source docker/clean

echo
echo "Build Docker Images..."
docker-compose build

echo
echo "Start Docker Images..."
sh docker/bin/osx-dev -r "docker-compose up" -i ".rsyncignore"

+1

+1

+1

+1

+1

+1

+1

+1

Inilah yang saya gunakan untuk membuat lingkungan mesin buruh pelabuhan saya dengan IP yang konsisten:

#--- Usage: d-machine-static new_dm_name new_dm_ip [new_dm_memory]
function d-machine-static {
    new_dm_name="${1}"
    new_dm_ip="${2:-192.168.90.100}"
    new_dm_memory="${3:-1024}"
    docker-machine create -d virtualbox --virtualbox-hostonly-cidr "${new_dm_ip}/24" --virtualbox-memory "${new_dm_memory}" "${new_dm_name}"
    echo -e "\033[1;34m${new_dm_name}\033[0m = \033[0;32m$(/usr/local/bin/docker-machine ip ${new_dm_name})\033[0m"
}

Beberapa IP cenderung lebih sering berhasil daripada yang lain, dan saya paling beruntung dengan IP yang berbentuk 192.168.x.100 sehingga x < 99 .

Dan inilah yang saya gunakan untuk beralih di antara mereka dengan cepat:

#--- Switch to a different docker-machine environment.
function d-env () {
    target_environment="${1}"
    if [[ $(/usr/local/bin/docker-machine status ${target_environment}) = "Stopped" ]]; then
        docker-machine start "${target_environment}"
        sleep 1
    fi
    eval "$(/usr/local/bin/docker-machine env ${target_environment})"
    echo -e "\033[1;34m${target_environment}\033[0m = \033[0;32m$(/usr/local/bin/docker-machine ip ${target_environment})\033[0m"
}

Jangan ragu untuk menggunakan, memodifikasi, dan mendistribusikan sepuasnya.

+1

Saya juga harus menambahkan gateway default ...

Inilah cara saya melakukan ini di Windows 10 menggunakan PowerShell & Hyper-V (dengan layanan VMNat.dll untuk NAT, bukan ICS).

  • subnetnya adalah 192.168.233.0/24
  • Server DHCP berjalan pada .1
  • DNS & NAT di .2
  • mesin buruh pelabuhan baru untuk mengambil .10 IP statis

`````` PowerShell
docker-machine buat --driver hyperv --hyperv-virtual-switch "VMWare NAT" --hyperv-memory "512" consul0

belum menguji apakah gateway default berfungsi setelah reboot ....

echo "kill ``more /var/runudhcpc.eth0.id```nifconfig eth0 192.168.233.10 netmask 255.255.255.0 broadcast 192.168.233.255 up" | docker-machine ssh consul0 "sudo tee /var/lib/boot2docker/bootsync.sh" > $null

bunuh dhcp di antarmuka eth0 segera

docker-machine ssh consul0 "sudo cat /var/run/udhcpc.eth0.pid | xargs sudo kill"

memunculkan eth0 dengan IP statis baru..

perintah berikut hang ... Saya harus CTRL + C setelah beberapa saat ...

docker-machine ssh consul0 "sudo ifconfig eth0 192.168.233.10 netmask 255.255.255.0 siaran 192.168.233.255 ke atas"

perbaiki sertifikat tls yang untuk IP dinamis lama

konsul ulang sertifikat mesin buruh pelabuhan0

pastikan internet masih berfungsi dengan menambahkan kembali gateway default (hilang dalam kasus saya)

docker-machine ssh consul0 "rute add default gw 192.168.233.2"
``````

senang mendengarnya:

#get the ip
$(Get-VM consul0).NetworkAdapters[0].IPAddresses[0]

#open vmconnect
$vm=Get-VM consul0

vmconnect $env:COMPUTERNAME $vm.Name -G $vm.Id

Catatan: Terkadang boot2docker init tampaknya gagal dan Hyper-V tidak bisa mendapatkan IP Adaptor...

+1

+1

Kami masih dalam mode plus satu? :)

Ini mengacaukan pengaturan saya sepanjang waktu dan benar-benar masuk akal untuk memberikan ip tetap terutama ketika Anda menjalankan beberapa lingkungan dev untuk berbagai proyek secara lokal

Kami sedang menunggu konfirmasi bahwa strategi di atas berfungsi untuk orang lain yang menggunakan mesin buruh pelabuhan di Mac OSX. Ini dia dalam bentuk yang lebih ringkas:

1) Atur variabel x menjadi bilangan bulat antara 1 dan 98. Misalnya:
x='42'

2) Atur variabel new_dm_name menjadi nama lingkungan mesin buruh pelabuhan baru Anda. Sebagai contoh:
new_dm_name='magic'

3) Jalankan perintah ini:
docker-machine create -d virtualbox --virtualbox-hostonly-cidr "192.168.$x.100/24" "$new_dm_name"

IP statis baru Anda sekarang harus 192.168.x.100 dan harus tetap ada di antara sesi selama Anda tidak menetapkan IP itu ke hal lain. Untuk mengonfirmasi bahwa ini masalahnya, saya sarankan menjalankan perintah ini:

docker-machine ip "$new_dm_name"
docker-machine stop "$new_dm_name"
docker-machine start "$new_dm_name"
docker-machine ip "$new_dm_name"

Dengan sedikit keberuntungan ini akan beradaptasi dengan Windows juga.

+1

baik, aku ditakdirkan. Perusahaan saya menggunakan 192.168.99.x untuk ip lokal kami, jadi izinkan ini untuk diubah.

@xbeta - Anda bisa mengkonfigurasi ulang jaringan VBox? Saya tidak akan dapat memberi tahu Anda bagaimana melakukannya karena saya menggunakan Hyper-V, tetapi jika Anda menggunakan driver VBox default, lihat saja nics virtual yang dibuat oleh itu, docker-machine adalah hanya membungkus VBox

+1

Bisakah orang-orang tolong, tolong, tolong berhenti dengan komentar +1? Github sekarang memiliki fitur +1. Cukup klik +Smiley di kanan atas, dan klik ikon jempol ke atas. Ini menyampaikan dukungan Anda tanpa mengirim email ke semua orang yang berkomentar di sini. #kthxbye

https://blog.docker.com/2016/03/docker-for-mac-windows-beta/

Lebih cepat dan lebih andal: tidak ada lagi VirtualBox!

Sepertinya Docker membuang VirtualBox. Anda mungkin ingin menyesuaikan harapan Anda tentang masalah ini untuk mendapatkan perbaikan.

+1

+1

+1

:+1:

+1

+1

+1

Ya, tolong jadilah kutu buku, teruslah berpenampilan menarik. Itu menanamkan begitu banyak kepercayaan diri.

@everett-toews VirtualBox masih berguna untuk solusi buruh pelabuhan multi host seperti Swarm, Kubernetes, Nomad, dll. Docker untuk Mac setara dengan pengaturan satu host (mac Anda adalah host).
Solusi lokal lainnya adalah VmwareFusion yang menyimpan ip host saat di-restart. Ini adalah perbaikan baru-baru ini btw.
Jadi ya, kita perlu cara yang lebih mudah untuk menentukan ip statis untuk VirtualBox.

@gittycat Yap. Dan itulah mengapa saya masih menjalankan Docker Toolbox. Agar aku bisa membuat Swarm. Meski begitu, saya lebih suka melihat Permintaan Fitur ini

+1

+1

+1

+1

+1

Jika Anda perlu mengatur ip statis untuk mesin boot2docker, cukup edit /var/lib/boot2docker/profile dan tambahkan

sudo cat /var/run/udhcpc.eth1.pid | xargs sudo kill 
sudo ifconfig eth1 <ip address to assign> netmask <subnet mask> broadcast <broadcast address> up

Setelah itu Anda perlu membuat ulang sertifikat
docker-machine regenerate-certs rancher -f

+1

Saya pikir sudah waktunya, setidaknya untuk Mac n Windows, untuk menutup permintaan ini karena tidak relevan. Semua masalah saya seputar ip mesin buruh pelabuhan diselesaikan oleh buruh pelabuhan untuk Mac. Pikiran semua orang?

@caledhwa setuju, docker mac cukup stabil sekarang tidak dapat melihat alasan untuk berurusan dengan docker-machine lagi

@caledhwa Docker untuk Mac hanya mendukung satu mesin - jika Anda memiliki pengaturan multi mesin, ini masih relevan.

@caledhwa seperti yang dikatakan @davidolrik , Docker untuk Mac/Windows/AWS/Azure hanya mendukung 1 host yang mengesampingkannya untuk pengembangan, demo, dan pengujian multi-node Swarm/Kubernete/Mesos/etc.

👍

+1

Masih tidak ada gerakan ini? Ini adalah pemblokir untuk menggunakan mesin buruh pelabuhan karena saya tidak dapat mengubah alamat jaringan tamu yang bertentangan.

Untuk dapat memperbaiki IP mesin buruh pelabuhan untuk virtualbox diperlukan fitur.

Saya menyiapkan beberapa host buruh pelabuhan sebagai contoh segerombolan, dan setelah reboot, hampir setiap IP Host berubah, dan akan mendapatkan kesalahan:

x509: certificate is valid for 192.168.99.103, not 192.168.99.100

Ya, saya mungkin dapat menggunakan docker-machine regenerate-certs untuk memperbaiki masalah sertifikat, namun, IP penyimpanan nilai kunci juga berubah, dan hasilnya adalah swarm saya berhenti bekerja, sampai saya mengubahnya secara manual dalam konfigurasi satu per satu satu lagi.

Mungkin akan lebih baik untuk menghapusnya dan membuat host itu lagi. Namun, setiap gambar/wadah di host tersebut akan hilang.

Jadi, harap memungkinkan untuk menentukan IP host, atau hanya secara otomatis mengalokasikan IP tetap untuk host buruh pelabuhan virtualbox, dan jangan biarkan itu berubah saat reboot.

+1
Saya memiliki kasus di mana saya menggunakan dnsmaq untuk DHCP dan DNS, berdasarkan komentar di atas saya mencoba menonaktifkan server DHCP dari antarmuka kotak virtual dalam kasus saya vboxnet4 seperti VBoxManage dhcpserver remove --netname HostInterfaceNetworking-vboxnet4 dan perlu reboot mesin untuk memilih rentang DHCP dari dnsmasq , masalah yang saya hadapi adalah bahwa pada setiap pembuatan mesin baru, mesin buruh pelabuhan mengaktifkan server dhcp pada vboxnet4 dan server lain yang menggunakan dnsmasq tidak dapat cari mesin buruh pelabuhan, saya harus mengulangi penghapusan vnet dan kemudian reboot mesin buruh pelabuhan. akan sangat bagus jika kita dapat menambahkan flag ke docker-machine-create untuk membantu tidak mengaktifkan dhcp semacam itu.

+1

+1

+1

+1

Berikut adalah perintah yang merangkum pekerjaan @micheletedeschi dan memberikan beberapa kemudahan untuk beralih antara DHCP dan konfigurasi statis. Itu juga memperbarui file /etc/hosts jika diminta.

https://github.com/fivestars/docker-machine-ipconfig

Kami telah menggunakannya selama beberapa minggu terakhir dengan sukses besar. Jalankan saja setelah membuat mesin buruh pelabuhan Anda.

Usage: docker-machine-ipconfig <command> args...

Commands:
    ls                             List running docker-machines' ip addresses

    static <machine> [ip-address]  Configure <machine> to use a static IP address
                                   (default is current address)

    dhcp <machine>                 Configure <machine> to use DHCP client to gather IP address

    hosts                          Update /etc/hosts file

Semua orang memikirkan solusi yang lebih "generik" (fitur asli mesin buruh pelabuhan) karena opsi ini juga menarik di Vsphere, Azure, dan lingkungan penerapan lainnya. Tapi itu benar-benar diterima.

+1

+1

+1

+1

+1

+1

Solusi @ micheletedeschi kurang lebih berfungsi untuk saya, tetapi tampaknya ip kadang-kadang beralih dari yang saya atur dengan skripnya (192.168.99.100:2376) ke yang dibuat secara otomatis ketika saya membuat mesin saya ( 192.168.99.104:2376). Cukup baru untuk buruh pelabuhan, ada yang punya wawasan?

+1, mengalami masalah yang sama hari ini menggunakan ZooKeeper dan VirtualBox

Solusi @ micheletedeschi kurang lebih berfungsi untuk saya, tetapi tampaknya ip kadang-kadang beralih dari yang saya atur dengan skripnya (192.168.99.100:2376) ke yang dibuat secara otomatis ketika saya membuat mesin saya ( 192.168.99.104:2376). Cukup baru untuk buruh pelabuhan, ada yang punya wawasan?

Apakah Anda membunuh klien DHCP? Setelah kembali, dapatkah Anda mengonfirmasi bahwa klien DHCP masih tidak berjalan?

Saya menemukan solusi lain yang akhirnya berhasil untuk saya: Saya cukup memulai swarm agent pada setiap mesin menggunakan _advertise=$(ifconfig eth1 | grep -Eo "192.168.99.1[0-9]{2}"):2376_ dan publikasikan saat ini IP ke ZooKeeper (atau layanan penemuan lainnya). Ini tidak masalah dalam kasus saya karena saya dapat mengandalkan setiap mesin yang diberi alamat 192.168.99.1** (ini hanya pengaturan eksperimental). pikir ada ekspresi regex yang lebih canggih yang dapat diterapkan ke rentang IP yang sewenang-wenang. Ini tidak bagus dan mungkin agak retas, tetapi berhasil.

+1

+1

IP VM dan sertifikat TLS yang berubah secara sewenang-wenang yang tiba-tiba menjadi tidak valid saat reboot telah menyebabkan banyak momen gotcha dan jam kerja yang terbuang sia-sia

Apakah ini bahkan diprioritaskan? 13 bulan penuh kasus ini telah terbuka. +10000

Dugaan saya adalah bahwa ada ketidaksepakatan filosofis antara beberapa orang di tim mesin buruh pelabuhan dan seluruh dunia tentang masalah ini. Menggunakan DHCP dan memiliki IP non deterministik hampir tidak berguna untuk semua kasus penggunaan saya.

Saya telah menggunakan solusi ini selama setahun terakhir. Ini diadaptasi dari beberapa solusi satu baris yang dijelaskan di atas.

SSH ke mesin buruh pelabuhan
default ssh mesin buruh pelabuhan

Tambahkan/edit skrip startup boot2docker
sudo vi /var/lib/boot2docker/bootsync.sh

#!/bin/sh
/etc/init.d/services/dhcp stop
ifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up

sudo chmod 755 /var/lib/boot2docker/bootsync.sh
keluar

Mulai ulang mesin dan buat ulang sertifikat
default restart mesin buruh pelabuhan
docker-machine regenerate-certs default

+1

+1

+1 (untuk mesin buruh pelabuhan dan jimmidison/minishift)

+1

@eytanhanig Sayangnya metode Anda tidak berhasil untuk saya. Saya menggunakan OS X 10.11.6. Mesin mendapatkan IP yang diinginkan tetapi ada kesalahan saat menyambungkannya. Docker menyarankan untuk membuat ulang kunci, tetapi itu tidak memperbaiki masalah.

+1

+1

Sungguh konyol berapa lama orang memberi ini +1.

+1

Saya suka memiliki fitur ini, namun, saya tidak menemukan pendekatan elegan untuk mengimplementasikannya.

Masalahnya disebabkan oleh DHCP di Virtualbox, jika sistem reboot, server DHCP akan kehilangan semua data IP yang dialokasikan, dan mencoba mengalokasikan kembali IP untuk VM tersebut, yang kemungkinan tidak memiliki IP yang sama untuk terakhir kalinya.

Saya tidak yakin itu benar untuk membiarkan Virtualbox mempertahankan data DHCP. Dan Boot2docker tidak akan mempertahankan IP yang dialokasikan oleh DHCP, yang sebenarnya merupakan perilaku yang benar.

IMHO, saya tidak berpikir mencoba menyelesaikan DHCP adalah cara yang tepat untuk dilakukan, saya pikir menambahkan kemampuan untuk menentukan IP statis ke Boot2docker dan driver kotak virtual mesin buruh pelabuhan harus menyelesaikan masalah.

Mungkin lebih baik mengimplementasikan IP statis di proyek https://github.com/boot2docker/boot2docker terlebih dahulu, seperti, menambahkan kemampuan untuk menetapkan IP statis, daripada menggunakan DHCP.

Berikut adalah kode untuk memicu panggilan DHCP:

https://github.com/boot2docker/boot2docker/blob/master/rootfs/rootfs/bootscript.sh#L16

# Trigger the DHCP request sooner (the x64 bit userspace appears to be a second slower)
echo "$(date) dhcp -------------------------------"
/etc/rc.d/dhcp.sh
echo "$(date) dhcp -------------------------------"

Kita dapat membuatnya bersyarat, dengan menambahkan satu set konfigurasi IP di /var/lib/boot2docker/profile , dan jika IP statis telah dikonfigurasi, maka gunakan IP statis alih-alih meminta IP dari DHCP.

Kemudian, kita dapat menambahkan satu atau lebih opsi untuk driver virtualbox untuk menentukan konfigurasi IP statis, seperti --virtualbox-boot2docker-cidr , --virtualbox-boot2docker-gateway , --virtualbox-boot2docker-dns ...

+1

+1

+1

Teman-teman, ayo. Bisakah kami menghentikan +1 pada masalah yang sudah berjalan lama? Ada tombol Suka yang diterapkan karena alasan tertentu. Tidak perlu mengirim spam ke pelanggan.

Tidak perlu mengirim spam ke pelanggan.

Anda dapat berhenti berlangganan.
1

Saya semua untuk spamming pelanggan.

Beberapa dari pelanggan tersebut adalah bagian dari tim proyek.

Pada 26 Jan 2017 14:20, "Sergey Nevmerzhitsky" [email protected]
menulis:

Tidak perlu mengirim spam ke pelanggan.

Anda dapat berhenti berlangganan.
[gambar: 1]
https://cloud.githubusercontent.com/assets/1006042/22332699/4cf1a8b4-e3e3-11e6-8bad-52406c3b8055.png


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub
https://github.com/docker/machine/issues/1709#issuecomment-275386350 ,
atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/AG44NZ2KdnsH6JTU6iI_5Uieh9WZxWXBks5rWJ2RgaJpZM4FsQYg
.

Saya semua untuk spamming pelanggan.
Beberapa dari pelanggan tersebut adalah bagian dari tim proyek.

Pengelola check-in. Harap _jangan_ melakukan spam dengan +1 komentar. Ini adalah masalah yang terkenal dan mengirim spam ke utas tidak ada gunanya. Tunjukkan dukungan melalui reaksi emoji "+1" jika Anda mau. Seperti biasa, kami dengan senang hati mengevaluasi permintaan penarikan atau proposal terperinci. Terima kasih semuanya.

(Sebagai catatan tambahan, @twang2218 tampaknya memiliki ide yang tepat secara umum -- IP statis lebih rumit daripada yang terlihat benar dan mengenai kasus penggunaan yang mungkin dipikirkan oleh pelanggan utas ini -- mungkin masalah dapat dimulai di boot2docker repo untuk didiskusikan.)

Saya tidak benar-benar menginginkan ip statis. Tapi begitu alamat ip diambil selama pembuatan, itu harus tetap pada restart berikutnya. Apakah ini sudah tersedia?

Saya memiliki buruh pelabuhan dengan VPN dan standar 192.168.99.100 tidak dimuat. Saya pikir ini karena koneksi VPN, jadi saya menyiapkan jaringan jembatan di dalam Virtualbox untuk mengakses buruh pelabuhan melalui 192.168.1.159. Saya ingin ini muncul di alamat IP yang diterbitkan Kitematic. Apakah ada cara untuk melakukannya?

Bagi mereka yang tidak sabar menunggu fitur ini diimplementasikan, menetapkan ip khusus, ditambah cpu/memori khusus dimungkinkan dengan menggunakan penyedia Vagrant VirtualBox dan driver generik mesin buruh pelabuhan .

Misalnya di windows, letakkan Vagrantfile ini:

Vagrant.configure("2") do |config|
  config.vm.box = "AlbanMontaigu/boot2docker"
  config.vm.provider "virtualbox" do |v|
    v.memory = 8192
    v.cpus = 8
  end
  config.vm.synced_folder ".", "/vagrant", disabled: true
  config.vm.synced_folder "C:/Users", "/c/Users"
  config.vm.network "private_network", ip: "192.168.99.103"
end

dan tempatkan kunci pribadi ssh default gelandangan dengan nama vagrant.pem

dan lari

vagrant up
docker-machine create --driver generic --generic-ip-address=192.168.99.103 --generic-ssh-user=docker --generic-ssh-key=vagrant.pem default
docker-machine ls

dan Anda akan mendapatkan Host buruh pelabuhan dengan ip khusus, cpu, memori dll yang dikonfigurasi melalui gelandangan pada saat yang sama dapat diakses melalui mesin buruh pelabuhan.

Anda dapat menemukan kumpulan file yang berfungsi untuk Windows di https://github.com/joelhandwell/dockerhost

@jcwilson Hai Josh dkk, terima kasih banyak.. Saya mem-fork skrip Anda untuk memperbaiki masalah yang sama (lihat https://github.com/minishift/minishift/issues/343 , https://github.com/minishift /minishift/issues/598) dalam kombinasi dengan minishift:

https://github.com/ahilbig/docker-machine-ipconfig

Ada berita?

Saat ini, saya sedang bereksperimen dengan ini untuk Minishift: https://github.com/minishift/minishift/issues/1293
Meskipun, pendekatan lain adalah menggunakan sesuatu seperti cloud-init (yang mungkin terlalu berat untuk pendekatan ini, atau menyematkan server DHCP di dalam biner berbasis Go dan menggunakan ini untuk memaksa alamat IP yang dialokasikan)

+1.
Saat ini memiliki lebih dari satu mesin adalah rasa sakit yang mengerikan. Jika Anda menggunakan sertifikat tambahan (misalnya, untuk repositori buruh pelabuhan khusus) dan mengubah urutan mesin awal, Anda harus melakukan:

Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376"
: x509: certificate is valid for 192.168.99.101, not 192.168.99.100

Ini memaksa Anda untuk membuat ulang sertifikat atau menonaktifkan semua mesin dan memulihkan urutan eksekusi (yang terkadang juga menyakitkan).

Selain itu, menggunakan Chef untuk mengonfigurasi proyek berbasis Docker juga akan jauh lebih baik jika Anda dapat menganggap mesin yang dibuat akan selalu memiliki IP yang sama (misalnya, menambahkannya ke file host dan Anda dapat melupakan IP).

+1

+1

+1
thx jcwilson, skrip docker-machine-ipconfig sangat bagus! saya perlu mengubah eth1 menjadi eth0 dalam skrip, setelah ini, skrip berfungsi sempurna untuk saya. Saya menggunakan vmware vsphere.

Selamat tinggal.

+1

Sebagai bagian dari minishift, kami telah mengimplementasikan https://github.com/minishift/minishift/issues/1316 dan sejauh ini telah berfungsi dengan baik. Kami sekarang mencari alternatif untuk melakukan hal yang sama untuk hypervisor lain dari waktu ke waktu, tetapi pertama-tama kami akan memperbaiki alamat menggunakan https://github.com/minishift/minishift/issues/1457 (untuk mencegah alamat baru ditetapkan) . Kami belum dapat memesan waktu, kami akan mendaratkan ini di minikube juga.

+1

Solusi paling sederhana yang saya temukan adalah mengandalkan urutan memulai mesin virtual dengan mesin doker.

VirtualBox memiliki server DHCP yang mulai menetapkan alamat IP dari 192.168.99.100.

  1. Hentikan semua VM
    docker-machine stop ${docker-machine ls -q}
    Langkah ini akan melepaskan semua alamat yang ditetapkan ke VirtualBox DHCP

  2. Mulai VM secara berurutan
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Langkah-langkah ini menetapkan IP seperti ini:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Perhatikan bahwa docker-machine start vbox1 vbox2 vbox3 tidak akan berfungsi, tetapi saya tidak tahu mengapa.

+1

ketika saya menjalankan docker-machine.exe start , dibutuhkan lebih dari 15 detik untuk DHCP waiting for an IP (jika internet rusak, dibutuhkan lebih dari 2 menit), saya pikir jika dapat mengatur ip statis, itu dapat boot dengan cepat .

Fungsi ini telah ditambahkan ke Minishift beberapa waktu lalu, tetapi itu
membutuhkan modifikasi pada ISO agar berfungsi.
Di Hyper-V kami mengalami masalah yang tidak dimiliki oleh gambar boot2docker
dimainkan dengan baik... jadi ini hanya berfungsi pada gambar berbasis CentOS dan Fedora.
Juga, ini tidak bekerja dengan driver KVM saat ini karena bergantung pada DHCP.

Ini akan membutuhkan sedikit desain ulang...

Pada Minggu, 3 Februari 2019 pukul 23.08 fcying [email protected] menulis:
>

ketika saya menjalankan docker-machine.exe start, dibutuhkan lebih dari 15 detik untuk DHCP menunggu IP (jika internet rusak, dibutuhkan lebih dari 2 menit), saya pikir jika dapat mengatur ip statis, itu dapat boot dengan cepat.


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub, atau matikan utasnya.

--

Gerard Braad | http://gbraad.nl
[ Melakukan Masalah Open Source ]

Solusi paling sederhana yang saya temukan adalah mengandalkan urutan memulai mesin virtual dengan mesin doker.

VirtualBox memiliki server DHCP yang mulai menetapkan alamat IP dari 192.168.99.100.

  1. Hentikan semua VM
    docker-machine stop ${docker-machine ls -q}
    Langkah ini akan melepaskan semua alamat yang ditetapkan ke VirtualBox DHCP
  2. Mulai VM secara berurutan
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Langkah-langkah ini menetapkan IP seperti ini:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Perhatikan bahwa docker-machine start vbox1 vbox2 vbox3 tidak akan berfungsi, tetapi saya tidak tahu mengapa.

Terkadang saya harus mematikan proses VBoxNetDHCP.exe di Windows, untuk membuat vbox menetapkan IP mulai dari 192.168.99.100
Jika tidak, vbox tidak akan merilis IP yang digunakan oleh mesin sebelumnya (tidak yakin mengapa)

👍

Itu benar-benar akan membuat hidup saya lebih mudah.

Solusi paling sederhana yang saya temukan adalah mengandalkan urutan memulai mesin virtual dengan mesin doker.

VirtualBox memiliki server DHCP yang mulai menetapkan alamat IP dari 192.168.99.100.

  1. Hentikan semua VM
    docker-machine stop ${docker-machine ls -q}
    Langkah ini akan melepaskan semua alamat yang ditetapkan ke VirtualBox DHCP
  2. Mulai VM secara berurutan
    docker-machine start vbox1 && docker-machine start vbox2 && docker-machine start vbox3
    Langkah-langkah ini menetapkan IP seperti ini:
    192.168.99.100 : vbox1
    192.168.99.101 : vbox2
    192.168.99.102 : vbox3

Perhatikan bahwa docker-machine start vbox1 vbox2 vbox3 tidak akan berfungsi, tetapi saya tidak tahu mengapa.

Ini sangat berguna.

Untuk menetapkan static ip address 192.168.99.50 ke mesin buruh pelabuhan saya (default) di VirtualBox, saya menggunakan:

$ echo -e "kill \`cat /var/run/udhcpc.eth1.pid\`\nifconfig eth1 192.168.99.50 netmask 255.255.255.0 broadcast 192.168.99.255 up" | docker-machine ssh default sudo tee /var/lib/boot2docker/bootsync.sh > /dev/null

$ docker-machine restart default
Restarting "default"...
(default) Check network to re-create if needed...
(default) Waiting for an IP...
Waiting for SSH to be available...
Detecting the provisioner...
Restarted machines may have new IP addresses. You may need to re-run the `docker-machine env` command.

$ docker-machine env
Error checking TLS connection: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.50:2376": x509: certificate is valid for 192.168.99.103, not 192.168.99.50
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which might stop running containers.

$ docker-machine regenerate-certs default
Regenerate TLS machine certs?  Warning: this is irreversible. (y/n): y
Regenerating TLS certificates
Waiting for SSH to be available...
Detecting the provisioner...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...

$ docker-machine env
export DOCKER_TLS_VERIFY="1"
export DOCKER_HOST="tcp://192.168.99.50:2376"
export DOCKER_CERT_PATH="/Users/mandrake/.docker/machine/machines/default"
export DOCKER_MACHINE_NAME="default"
# Run this command to configure your shell:
# eval $(docker-machine env)

Lingkungan saya adalah OSX, VirtualBox (boot2docker.iso)

Semoga bisa bermanfaat
BTW: +1 untuk permintaan fitur baru
Bersulang.

Ya, ada opsi untuk membuat dengan ip tertentu. Yang perlu Anda lakukan adalah menentukan ip/ip-range dengan
--virtualbox-hostonly-cidr pilihan.

Sebagai contoh:

  • ketika Anda ingin menetapkan ip tertentu, katakanlah Anda ingin menetapkan 10.15.1.24, maka konfigurasi yang sesuai adalah (yang terpenting adalah topeng yang kami gunakan di sini. Untuk ip tertentu Anda perlu mengatur subnet mask ke 32):
    docker-machine create --driver virtualbox --virtualbox-hostonly-cidr "10.15.1.24/32" dev

  • jika Anda ingin memilih ip dari rentang ip tertentu, maka Anda perlu menggunakan subnet mask yang sesuai.

Jika masalah Anda adalah Anda harus terus memperbarui file host, Anda cukup menginstal Avahi di wadah Anda dan menggunakan mDSN.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

moander picture moander  ·  5Komentar

AlexZeitler picture AlexZeitler  ·  4Komentar

jrz picture jrz  ·  5Komentar

masaeedu picture masaeedu  ·  4Komentar

diver-sity picture diver-sity  ·  4Komentar