docker问题命令到容器内的应用程序?

我正在使用nodeBB启动一个服务器,你可以运行./nodebb start停止你可以做./nodebb stop 。 现在,我已经dockerized它http://nodebb-francais.readthedocs.org/projects/nodebb/en/latest/installing/docker/nodebb-redis.html我不知道如何可以与它交互。

我已经按照步骤“使用docker-machine mac os x”

 docker run --name my-forum-redis -d -p 6379:6379 nodebb/docker:ubuntu-redis 

然后

 docker run --name my-forum-nodebb --link my-forum-redis:redis -p 80:80 -p 443:443 -p 4567:4567 -P -t -i nodebb/docker:ubuntu 

然后

 docker start my-forum-nodebb 

我有一个使用redis地址的问题,所以我想解决这个问题,并重新启动,但我不知道如何? 另外我想在项目目录下发出grunt命令,又不知道怎么做?

我的问题是我如何能够与泊坞窗容器内的应用程序进行交互,就好像我可以直接访问项目文件夹本身一样? 我错过了什么吗?

在这个答案中的所有代码是未经testing的,因为我目前在没有docker的电脑。

看看容器是否仍在运行

 docker ps 

停止错误configuration的容器

 docker stop my-forum-redis docker stop my-forum-nodebb 

删除错误configuration的容器及其容量

(他们基于的docker图像将被保留。)

 docker rm --volumes --force stop my-forum-nodebb docker rm --volumes --force my-forum-redis 

重新开始

然后,再次发出您的3个命令 ,现在使用正确的端口。

执行容器内的任意命令

另外我想在项目目录下发出grunt命令,又不知道怎么做?

你可能想在docker run --name my-forum-nodebb ...之后执行以下命令docker run --name my-forum-nodebb ...命令,但是在docker run --name my-forum-nodebb ...之前docker start my-forum-nodebb

docker run接受命令执行,而不是容器的默认命令。 我们先用这个来找出我们所在的容器中的哪个地方:

 docker run my-forum-nodebb pwd 

如果这是你想要运行grunt的目录,那么就继续:

 docker run my-forum-nodebb grunt 

如果没有,你将不得不将几个命令填入一个单独的命令。 你可以通过调用一个shell来做到这一点:

 docker run my-forum-nodebb bash -c 'cd /path/to/project/dir; grunt' 

其中/path/to/project/dir将被您要运行grunt地方replace。