我是码头工人的新手。我有一个正在运行的应用程序的AMI。我已经将AMI作为实例启动了。它基于RHEL 6.5。我已经启动了另一个新的ubuntu 14.04实例,并在其上安装了docker。我已经停止了应用程序实例并分离了根卷并将其附加到我的新ubuntu 14.04实例,并使用命令sudo mount /dev/xvda1 /mnt/
将其挂载到安装卷。
然后我使用命令tar -c -C /mnt/ . | docker import - yourimagename:tag
从已安装的根卷导入了docker镜像。我的图片名称为docimage:v1
。然后我使用命令docker run -it -p 443:443 docimage:v1 /bin/bash
运行容器。容器现在处于运行状态。但是要运行应用程序门户,我必须进入容器并手动启动service httpd start
,service postgresql start
和service vpms start
等服务。现在,应用程序门户正在浏览器上显示。为了避免手动步骤,我使用现有的docimage:v1映像创建了一个Dockerfile。
FROM docimage:v1
ENTRYPOINT service httpd start && service postgresql start && service vpms start && /bin/bash
我已经从dockerfile docnewimage:v1
构建了新图像。现在,如果我运行图像,则容器正在运行,并且应用程序正在浏览器中显示。我已将图像推送到dockerhub并从其他linux机器(例如ubuntu 16.04和amazon linux)中取出。容器正在运行但在启动vpms服务时失败。但当我将图像拉到其他ubuntu 14.04时,容器运行完美。有人可以帮我解决这个问题吗?