docker - 如何与Docker一起 “start over”?

标签 docker

我试图在Docker容器中运行Tomcat,但效果有限。在尝试了各种方法之后,我想“重置”而不完全删除所有内容。我确实停止了操作,并从Virtualbox控制台中删除了虚拟机。然后我尝试了docker-machine create和docker-machine restart。我的问题是,如果事情到了应用程序似乎挂起的状态,那么从头开始的最佳过程是什么,而该过程不涉及例如实际重建Docker容器?

编辑:我现在要问的是,鉴于“docker版本”返回客户端信息,但是当到达服务器信息时,我收到“尝试连接时发生错误”消息,现在需要做什么?它没有连接到什么?我尝试了明显的成功“docker-machine restart”,但此后再也没有使用“docker version”。

最佳答案

首先,不要删除boot2docker VM本身(由docker-machine创建)
如果要重置,则可能必须删除容器和图像(使用docker build快速重建)。但是您可以留在相同的基于docker的boot2docker VM中。无需删除。

重试docker容器 session 仅涉及杀死/删除当前容器,并执行新的docker run

然后,不要忘了检查什么不起作用:docker ps -a是否显示您的容器正在运行?您可以从boot2docker Linux主机访问Tomcat吗?从您的实际OS主机?
基于该诊断和Dockerfile的确切内容,您将能够调试问题。

主要问题可能来自事实docker命令是从VM外部执行的。
仅当设置了docker-machine env <machine-name>中的命令时,该方法才有效。
参见 docker-machine env :

For cmd.exe:

$ docker-machine.exe env --shell cmd dev
set DOCKER_TLS_VERIFY=1
set DOCKER_HOST=tcp://192.168.99.101:2376
set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev
set DOCKER_MACHINE_NAME=dev
# Run this command to configure your shell: copy and paste the above values into your command prompt.

(在此处用您的docker计算机的名称替换“dev”,可能是“default”)

但是从VM内部发出所有docker命令也很好。没有设置“env”。

一切都在VM上(图像,Dockerfile也可以在Windows主机上,只要它在C:\Users\<yourLogin>下,因为该文件夹会自动安装为/c/Users/<yourLogin>)

关于docker - 如何与Docker一起 “start over”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35546583/

相关文章:

docker - 为什么 docker sleep 1 用于连续后台进程?

javascript - 持续集成后在生产服务器中使用 Webpack 处理环境变量的两种方法

docker - 使用k8s仿真运行e2e测试

docker - Docker Swarm 与 Swarm 模式之间的区别?

mysql docker image 支持在启动时创建多个数据库

docker - kubelet无法使用kube-dns设置集群dns参数

django - 无法在 docker 中连接 postgresql(接收快速关闭请求)

docker - Kubeflow管道错误:无法保存输出:没有这样的容器

django - 如何与Django一起使用Dokku?

sql-server - 声明文件时如何还原数据库?