Я уже стучал головой о стену на целый день, поэтому спасибо за вашу помощь. Я запускаю Vagrant в Mac OS X, и я хочу запустить контейнер Docker с помощью простого сервера node.js 'hello world', запущенного внутри. Я хочу иметь доступ к этой форме сервера в моем браузере.Vagrant, Docker и Node.js на Mac OS X
Вот мой Vagrantfile.proxy (для запуска сервера Докер):
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision "docker"
config.vm.provision "shell", inline:
"ps aux | grep 'sshd:' | awk '{print $2}' | xargs kill"
config.vm.network :forwarded_port, guest: 8888, host: 8888
end
Вот моя Vagrantfile:
# -*- mode: ruby -*-
# vi: set ft=ruby :
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# Tells vagrant to build the image based on the Dockerfile found in
# the same directory as this Vagrantfile.
config.vm.define "nodejs" do |v|
v.vm.provider "docker" do |d|
d.build_dir = "."
d.ports = ['8888:8888']
d.vagrant_vagrantfile = "./Vagrantfile.proxy"
end
end
config.vm.network :forwarded_port, host: 8888, guest: 8888
end
Вот мой Dockerfile:
FROM ubuntu:14.04
MAINTAINER Sean
RUN apt-get update
RUN apt-get install -y python-software-properties python
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
RUN apt-get update
RUN apt-get install -y nodejs
RUN mkdir /var/www
ADD app.js /var/www/app.js
CMD ["/usr/bin/nodejs", "/var/www/app.js"]
EXPOSE 8888
И здесь id app.js (простой сервер node.js):
var http = require('http');
http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(8888, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8888/');
Я запускаю систему, используя «бродячий вверх» --provider = «docker». Затем я проверяю, что сервер начал использовать «бродячие докеры-журналы», который показывает вывод консоли. Затем я стараюсь:
'curl http://localhost:8888'
но я получаю «завиток: (52)« Пустое сообщение от сервера »каждый раз.
Что мне не хватает?