我是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 给了我找不到的命令。
我的问题是如何保存安装在容器中的状态或模块,以及如何在从容器退出后再次登录容器以进一步工作。
答案 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/