linux - 我如何在主机提供期间在容器内执行命令

标签 linux docker vagrant containers

我正在使用 vagrant 构建 docker 主机,然后我有 shell 脚本,它基本上为主机安装所有必需的包,该脚本还构建和运行容器

Vagrant 文件

config.vm.provision :shell, :inline => "sudo /vagrant/bootstrap.sh"

在里面我运行容器

docker run -d  . .bla bla .. .

这工作正常,但我必须通过 ssh 进入容器并运行 make deploy 来安装所有东西。

有什么方法可以从我的 bootsrap.sh 中运行 make deploy

一种方法是将其作为入口点,但每次运行都会这样做,

我只是希望当我提供主机时,该命令应该在某个容器内运行并向我显示主机的 vagarnt shows 之类的输出

最佳答案

使用docker exec

查看文档

http://docs.docker.com/reference/commandline/exec/

例如

docker exec -it container_id make deploy

docker exec -it container_id bash

然后

部署

在你的容器内

关于linux - 我如何在主机提供期间在容器内执行命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31176087/

相关文章:

node.js - Docker - NPM 安装本地包

ruby - vagrant-aws 插件安装错误

Java 客户端找不到主节点 : MasterNotDiscoveredException waited for [1m]

c - 有没有办法在不读取 linux 上的 proc/sys 文件的情况下获取电池信息(状态、插入等)?

c++ - 读取文件而不是将其作为参数传递

c++ - 如何使用 c++/python 程序在终端中运行程序,然后在该程序中执行语句

linux - 如果后跟管道(bash 错误?),Bash 变量默认设置不起作用

docker - 使用 letencrypt 生成 SSL 证书失败并显示 "300 - Multiple Choices"

docker-compose - 我可以在不重新启动容器的情况下更新标签吗?

laravel - 连接 VPN 时 Homestead Vagrant 无法工作