Docker - 退出

时间:2018-06-04 12:29:12

标签: node.js docker containers

我是docker的新手,我在mac终端中运行了这两个命令

docker pull amazonlinux
docker run -v $(pwd):/lambda-project -it amazonlinux

运行这两个命令后,我进入Linux终端,在那里我安装了Nodejs和几个节点模块

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
. ~/.nvm/nvm.sh
nvm install 6.11.5
npm -v
npm install serverless -global

到目前为止一切正常,我能够运行 npm -v 并向我显示npm版本,并且无服务器-v 工作正常。

然后我做了退出,然后我从容器中走出了我的本地终端。

然后我使用下面的命令再次进入我的容器

docker run -v $(pwd):/lambda-project -it amazonlinux

这次我的装置已经不见了。 npm -v 给了我找不到的命令。

我的问题是如何保存安装在容器中的状态或模块,以及如何在从容器退出后再次登录容器以进一步工作。

1 个答案:

答案 0 :(得分:1)

使用每个docker run命令启动另一个新容器。您可以运行命令docker ps --all。您将看到所有容器(包括已退出的容器)及其ID。您可以使用命令docker restart <id>重新启动已退出的容器。容器现在正在运行。使用命令docker attach <id>,您将返回容器中。所有已安装的库仍应存在,但是:

下载的shell脚本设置了一些shell变量。附加到容器后,您可以再次运行shell脚本:. ~/.nvm/nvm.sh。现在你可以访问npm了。这个shell命令打印出它做了什么以及你应该做些什么来保持这些改变。

如果您想保留所有这些更改并定期使用它,您可以编写一个Dockerfile来构建一个已安装所有lib的映像。这个官方页面让您开始编写Dockerfiles:https://docs.docker.com/develop/develop-images/dockerfile_best-practices/