2014-12-22 30 views
6

Mahgrant VM'de çalışan kurulum koridorlarım var. Özel docker kayıt defterini kurmak istiyorum. Kayıt defterini çektim ve çalıştırabilirim. 172.17.42.1 erişen On Yerel LoopbackAna makine ubuntu ana bilgisayarında tarayıcı aracılığıyla vagrant vm'de çalışan erişim docker konteyneri

: Aşağıdaki benim ifconfig çıktısı aşağıda içeriği silme

[email protected]:~$ ifconfig 
docker0 Link encap:Ethernet HWaddr 56:84:7a:fe:97:99 
     inet addr:172.17.42.1 Bcast:0.0.0.0 Mask:255.255.0.0 
     UP BROADCAST MULTICAST MTU:1500 Metric:1 
     RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:0 
     RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) 


eth0 Link encap:Ethernet HWaddr d4:3d:7e:a1:25:1e 
     inet addr:192.168.65.27 Bcast:192.168.65.255 Mask:255.255.255.0 
     inet6 addr: fe80::d63d:7eff:fea1:251e/64 Scope:Link 
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 
     RX packets:457483 errors:0 dropped:0 overruns:0 frame:0 
     TX packets:245109 errors:0 dropped:0 overruns:0 carrier:0 
     collisions:0 txqueuelen:1000 
     RX bytes:492304997 (492.3 MB) TX bytes:20414914 (20.4 MB) 

lo Bağlantı ENCAP gösterir benim ubuntu konak makinesinde kayıt

[email protected] ~ $ docker run -p 5000:5000 registry 
2014-12-22 01:40:32 [1] [INFO] Starting gunicorn 19.1.0 
2014-12-22 01:40:32 [1] [INFO] Listening at: http://0.0.0.0:5000 (1) 
2014-12-22 01:40:32 [1] [INFO] Using worker: gevent 
2014-12-22 01:40:32 [20] [INFO] Booting worker with pid: 20 
2014-12-22 01:40:32 [23] [INFO] Booting worker with pid: 23 
2014-12-22 01:40:32 [24] [INFO] Booting worker with pid: 24 
2014-12-22 01:40:32 [25] [INFO] Booting worker with pid: 25 
2014-12-22 01:40:32 [1] [INFO] 4 workers 
22/Dec/2014:01:40:32 +0000 WARNING: Cache storage disabled! 
22/Dec/2014:01:40:32 +0000 WARNING: LRU cache disabled! 
22/Dec/2014:01:40:32 +0000 DEBUG: Will return docker-registry.drivers.file.Storage 
22/Dec/2014:01:40:32 +0000 WARNING: Cache storage disabled! 
22/Dec/2014:01:40:32 +0000 WARNING: LRU cache disabled! 
22/Dec/2014:01:40:32 +0000 WARNING: Cache storage disabled! 
22/Dec/2014:01:40:32 +0000 DEBUG: Will return docker-registry.drivers.file.Storage 
22/Dec/2014:01:40:32 +0000 WARNING: LRU cache disabled! 
22/Dec/2014:01:40:32 +0000 DEBUG: Will return docker-registry.drivers.file.Storage 
22/Dec/2014:01:40:32 +0000 WARNING: Cache storage disabled! 
22/Dec/2014:01:40:32 +0000 WARNING: LRU cache disabled! 
22/Dec/2014:01:40:32 +0000 DEBUG: Will return docker-registry.drivers.file.Storage 
2014-12-22 02:40:32 [1] [INFO] 4 workers 
2014-12-22 03:40:31 [1] [INFO] 4 workers 
2014-12-22 03:53:42 [1] [INFO] 4 workers 
2014-12-22 03:53:42 [1] [INFO] Handling signal: winch 
2014-12-22 03:53:42 [1] [INFO] 4 workers 
2014-12-22 03:53:43 [1] [INFO] 4 workers 
2014-12-22 03:53:43 [1] [INFO] Handling signal: winch 
2014-12-22 03:53:43 [1] [INFO] 4 workers 

çalıştıran çıkışı: Ubuntu ana bilgisayarında tarayıcıda 5000 ve 192.168.65.27:5000 uzun bir süre beklediğini gösteriyor ama sonunda bağlantı kurulmuyor.

Ben this yazılan refere ama benim serseri gönderim başına olarak belirtilen girdileri yok.

# -*- mode: ruby -*- 
# # vi: set ft=ruby : 

require 'fileutils' 

Vagrant.require_version ">= 1.6.0" 

CLOUD_CONFIG_PATH = File.join(File.dirname(__FILE__), "user-data") 
CONFIG = File.join(File.dirname(__FILE__), "config.rb") 

# Defaults for config options defined in CONFIG 
$num_instances = 1 
$update_channel = "alpha" 
$enable_serial_logging = false 
$vb_gui = false 
$vb_memory = 1024 
$vb_cpus = 1 

# Attempt to apply the deprecated environment variable NUM_INSTANCES to 
# $num_instances while allowing config.rb to override it 
if ENV["NUM_INSTANCES"].to_i > 0 && ENV["NUM_INSTANCES"] 
    $num_instances = ENV["NUM_INSTANCES"].to_i 
end 

if File.exist?(CONFIG) 
    require CONFIG 
end 

Vagrant.configure("2") do |config| 
    # always use Vagrants insecure key 
    config.ssh.insert_key = false 

    config.vm.box = "coreos-%s" % $update_channel 
    config.vm.box_version = ">= 308.0.1" 
    config.vm.box_url = "http://%s.release.core-os.net/amd64-  
usr/current/coreos_production_vagrant.json" % $update_channel 

    config.vm.provider :vmware_fusion do |vb, override| 
    override.vm.box_url = "http://%s.release.core-os.net/amd64- 
usr/current/coreos_production_vagrant_vmware_fusion.json" % $update_channel 
    end 

    config.vm.provider :virtualbox do |v| 
    # On VirtualBox, we don't have guest additions or a functional vboxsf 
    # in CoreOS, so tell Vagrant that so it can be smarter. 
    v.check_guest_additions = false 
    v.functional_vboxsf  = false 
    end 

    # plugin conflict 
    if Vagrant.has_plugin?("vagrant-vbguest") then 
    config.vbguest.auto_update = false 
    end 

    (1..$num_instances).each do |i| 
    config.vm.define vm_name = "core-%02d" % i do |config| 
     config.vm.hostname = vm_name 

     if $enable_serial_logging 
     logdir = File.join(File.dirname(__FILE__), "log") 
     FileUtils.mkdir_p(logdir) 

     serialFile = File.join(logdir, "%s-serial.txt" % vm_name) 
     FileUtils.touch(serialFile) 

     config.vm.provider :vmware_fusion do |v, override| 
      v.vmx["serial0.present"] = "TRUE" 
      v.vmx["serial0.fileType"] = "file" 
      v.vmx["serial0.fileName"] = serialFile 
      v.vmx["serial0.tryNoRxLoss"] = "FALSE" 
     end 

     config.vm.provider :virtualbox do |vb, override| 
      vb.customize ["modifyvm", :id, "--uart1", "0x3F8", "4"] 
      vb.customize ["modifyvm", :id, "--uartmode1", serialFile] 
     end 
     end 

     if $expose_docker_tcp 
     config.vm.network "forwarded_port", guest: 2375, host: ($expose_docker_tcp + i -  
1), auto_correct: true 
     end 

     config.vm.provider :vmware_fusion do |vb| 
     vb.gui = $vb_gui 
     end 

     config.vm.provider :virtualbox do |vb| 
     vb.gui = $vb_gui 
     vb.memory = $vb_memory 
     vb.cpus = $vb_cpus 
     end 

     ip = "172.17.8.#{i+100}" 
     config.vm.network :private_network, ip: ip 

     # Uncomment below to enable NFS for sharing the host machine into the coreos-vagrant VM. 
     #config.vm.synced_folder ".", "/home/core/share", id: "core", :nfs => true, :mount_options => ['nolock,vers=3,udp'] 

     if File.exist?(CLOUD_CONFIG_PATH) 
     config.vm.provision :file, :source => "#{CLOUD_CONFIG_PATH}", :destination =>  "/tmp/vagrantfile-user-data" 
     config.vm.provision :shell, :inline => "mv /tmp/vagrantfile-user-data /var/lib/coreos-vagrant/", :privileged => true 
     end 

    end 
    end 
end 

Nasıl coreos-serseri üzerinde liman işçisi-kayıt çalıştırmak ve tarayıcıyı ana makinesinde çalışan kullanarak ona bağlanmak için aşağıdaki gibi

Benim serseri dosyasıdır?

cevap

1

Yapmaya çalıştığınız şeyle ilgili iki sorun görüyorum.

  1. Anasistem işletim sisteminizden bir Vagrant VM'de çalışan docker kapsayıcılarına erişim konusunda sorun yaşıyorsanız.
  2. Özel docker kayıt defterinizin yönetimi için bir web UI'si arıyorsunuz, ancak çalıştığınızı düşündüğüm docker görüntüsü (kitaplık/kayıt defteri) bunu sağlamaz.

Öğe 1: Çalıştırdığınız özel docker kayıt defterinin bir yönetici web kullanıcı arabirimi sağlamadığını unutmayın. Port 5000'de sunduğu hizmet bir web sitesi değildir; Özel kayıt defterinizdeki görüntüleri itmek ve çekmek için komut satırı docker'ının kullanımı içindir. Bir yönetici web kullanıcı arayüzüne ihtiyacınız varsa, https://github.com/atc-/docker-registry-web (denemediğim ama umut verici görünen) gibi ek bir hizmet çalıştırmayı düşünebilirsiniz.

Madde 2: Eğer Serseri SM'nin ana OS (muhtemelen Windows veya OSX bir Serseri-VM tarafından barındırılan liman işçisi kap limanlarını erişmek istiyorsanız host OS Linux olsaydı, muhtemelen serseri gerek olmazdı çünkü

vagrant ssh -L5000:localhost:5000 -L8080:localhost:8080 -L80:localhost:80 

Ve sürece olanlara ağ erişim ihtiyacı açık ssh oturumu bırakın:) o zaman, senin CoreOS Serseri VM sSH tüneli açmak için yerel ana bilgisayara liman işçisi kayıt port yönlendirme öneririz docker konteyner limanları.

bu port yönlendirme tüneller açık olsa da, iletilen portları localhost geçerli olacaktır (yani 127.0.0.1). Daha önce denediğiniz gibi başka bir IP adresi üzerinden erişmeniz gerekmez. Bu, örneğin, bir tarayıcıyla veya curl gibi başka bir HTTP istemcisi ile http://localhost:8080/ adresini ziyaret ederek http://localhost/ adresini ziyaret ederek veya 8080 bağlantı noktasında çalışan bir uygulama sunucusunu ziyaret ederek bir docker kabında çalışan bir web sunucusuna erişmenizi sağlar. Bu bağlamda 5000 numaralı bağlantı noktası muhtemelen kullanılamaz, çünkü kayıt defterine erişebilen docker komut satırı yardımcı programları şu anda Windows veya OSX'te yerel olarak çalışmamaktadır.

docker tag eb62f9df0657 localhost:5000/myimage 
docker push localhost:5000/myimage 
: Özel liman işçisi kayıt sizin CoreOS Serseri VY'de bu gibi koşmak şey kullanmak için