我想看看是否可以在 EC2 上为开发人员创建 Docker 实例,如果由于某种原因实例/容器本身关闭,这些实例不会被删除,就像 EC2 的按需实例停止时一样。
正确的做法是什么?我可以在 Amazon Elastic Container Service 上执行此操作吗?
我有 EC2 经验,但是是 docker 新手。
谢谢!
更新:需要明确的是,我希望开发人员能够使用 sudo 将他们自己的软件安装到容器上,并且在系统中断的情况下保留该环境。
答案1
我会使用Dockerfile
或docker compose
创建用于运行容器的映像,然后将所有即使 Docker 主机被破坏也必须保留的重要文件放在单独的卷中,例如附加到实例的 EBS。启动容器时,您会挂载 EBS 卷并将其作为数据卷添加到容器中。开发人员所做的所有工作都必须保存在数据卷上。
举个例子,假设您将一个 EBS 卷附加/dev/sdb1
到 AWS docker 主机实例。格式化后,假设您将其挂载/code
到 docker 主机实例上。启动容器时,将其添加为 -
docker run -d -P --name web -v /code:/var/www demo/webapp python app.py
现在,即使 docker 主机消失了,/code
数据也应该会保留在容器上/var/www
。所有工作都必须分别在主机或容器上完成/code
。/var/www
最重要的是,您可以拍摄它的快照,因为它是一个 EBS 卷。