2016-06-15 10 views
0

私はMac OS XでVagrantとVirtualboxを実行しています.Dockerプロバイダーを使用してVirtualboxプロバイダー(some_centosマシン)と2番目のボックスを使用して1つの迷路ボックスを作成しました。下にドッカーの定義が表示されます。迷惑メールバーチャルボックスから迷惑メールプロバイダードッカーにアクセスする

config.vm.define "mysql" do |m| 
    m.vm.hostname = "mysql-host" 
    m.vm.synced_folder ".", "/vagrant", disabled: true 
    m.ssh.insert_key = false 
     m.ssh.username = 'docker' 
     m.ssh.password = 'tcuser' 
     m.vm.network "public_network", use_dhcp_assigned_default_route: true 

m.vm.provider "docker" do |docker| 

    # Specify the Docker image to use 
    docker.image = "mysql/mysql-server" 

    # Specify port mappings 
    # If omitted, no ports are mapped! 

    docker.create_args = ["-p", "3306:3306","-e","MYSQL_ROOT_PASSWORD=password", "-e", "MYSQL_DATABASE=database"] 

    # Specify a friendly name for the Docker container 
    docker.name = 'mysql-server-container' 

    #We want to keep it running. 
    docker.remains_running = true 
end 

エンド

両方のマシンが起動しますが、私は何をしたい「some_centos」、それに接続するようにmysqlのクライアントを使用しているMySQLのドッキングウィンドウのマシンにホストからアクセスすることですか。残念ながら私は失敗しています。 Mac OSの場合は、vagrant docker providerを使用すると、boot2docker iamgeが作成され、dockerが作成されます。どのようにして問題に取り組むべきか分かりません。私は "some_centos"にsshすることはできますが、mysql -h "docker-host" -root -pを実行することはできません。

答えて

0

を基本的に、あなたが持っている必要があります。二重のポートフォワーディングベイグラントにまず、あなたの前方コンテナ港、お使いのMacのポートへ、その後放浪ポート

お使いのドッキングウィンドウコンテナ、このようなコードを使用し実行している:。。

docker container run -d --name nginx-test -p 8080:80 nginx 
01あなたのベイグラントファイルで

、終わりの上に次の行を追加します。

config.vm.network "forwarded_port", guest: 8080, host: 1200 

この方法では、コンテナのポート80は、浮浪者のポート8080と浮浪者のポート8080に転送されます前方になりますポート1200

Iをホストしますこの画像は助けることを願っています:

docker-vagrant-port-forwarding

+0

スクリーンショットのコードの一部を回答に追加できますか?そうすれば、索引付けが可能で読みやすくなり、答えの重要な部分(これは現在外部のウェブサイトに依存している)とは対照的に、スクリーンショットリンクを余分な参照として使用することができます。 –

+1

@ManeatingKoala良い点。ありがとうございました!私は答えを編集しました。 –

0

これを回避する方法が見つかりました。したがって、MAC OS Xのように、その仮想マシンでポート転送を行う必要がありますが、手動で行う必要があります。だから、次のように実行する必要があります。

VBoxManage controlvm name_of_your_virtual_machine natpf1 "mysql,tcp,,3306,,3306"は「

は、その後、私はMySQLを行うことができたので、私は私のVagrantfileにこのシェルのプロビジョニングを追加する必要があります

+0

なぜ、あなたは 'config.vm.network "forwarded_port" を追加していけないゲスト:3306、ホスト:3306'あなたVagrantfileに? –

関連する問題