使用镜像部署应用,您需先构建一个镜像并上传到镜像仓库。
步骤一:创建应用的基础镜像
步骤二:定制标准镜像
您可通过以下方法定制 WAR 包或 JAR 包应用的镜像文件。
- 定制 WAR 包应用镜像
- 方法一:编写 Dockerfile
在创建应用的基础镜像后,可通过编写 Dockerfile 制作标准镜像。
注意 请勿使用 CMD 命令自定义镜像启动脚本。-
发布 WAR 包示例:将本地应用 /tmp/edas-app.war 放入镜像,以镜像方式发布应用。
FROM registry.aliyuncs.com/edas/edas-container:3.5.2 ADD /tmp/edas-app.war /home/admin/taobao-tomcat-production-7.0.59.3/deploy/
-
修改 Tomcat 配置示例:替换 server.xml,并安装系统监控工具 sysstat。
FROM registry.aliyuncs.com/edas/edas-container:3.5.2 ADD /tmp/server.xml /home/admin/taobao-tomcat-production-7.0.59.3/conf/server.xml #安装一些系统包,比较常用的net-tools(包括netstat、ifconfig等),也可根据需要安装更多的系统包, 例如telnet、unzip RUN yum install -y net-tools lsof sysstat
-
- 方法二:使用本地 Docker 命令
与文件复制 cp 命令基本一致,执行如下命令,将本机 /tmp/app.war 复制到打包环境 WAR 包目录中。 例如:本地文件路径为
/tmp/app.war
,容器文件路径为edas-build-package:/home/admin/taobao-tomcat-production-7.0.59.3/deploy/
。复制本地文件 /tmp/app.war 至容器内 WAR 包部署目录则执行以下命令:
docker cp /tmp/app.war edas-build-package:/home/admin/taobao-tomcat-production-7.0.59.3/deploy/
- 方法三:在 Docker 容器内下载远程文件
-
执行命令
docker exec -it edas-build-package bash
,进入容器。 -
执行命令
wget http://anything-you-want/
,下载文件保存到本地。
-
- 方法一:编写 Dockerfile
- 定制 JAR 包应用镜像
-
创建一个制作镜像专用的目录,例如:fatjar_image_build (示例),然后将应用包放在该目录下。
-
下载启动脚本及 Dockfile 示例。
单击下载 压缩文件 ,将此压缩包保存在 fatjar_image_build 下,然后解压。解压后将会看到如下的文件内容:
tdy218@Christian-Laptop $ tree fatjar_image_build fatjar_image_build ├── Dockerfile ├── build_dockerimage_jar.zip ├── mw-tools-online-1.5.3.jar └── start.sh
- 编辑 Dockfile 文件,尽量只修改应用包的名称。
FROM registry.cn-hangzhou.aliyuncs.com/edas/edas-container:3.5.2 ENV JAR_FILE_NAME=mw-tools-online-1.5.3.jar ENV START_SCRIPT=/home/admin/bin/start.sh COPY ./start.sh ${START_SCRIPT} COPY ./${JAR_FILE_NAME} /home/admin/app/${JAR_FILE_NAME} RUN yum install -y net-tools lsof sysstat RUN chmod +x ${START_SCRIPT} CMD ${START_SCRIPT}
-
步骤三:打包本地镜像
完成基础镜像定制后,根据定制镜像方法的不同,分别执行以下 Shell 命令进行镜像打包。该打包的镜像均保存在本地环境。
例如:打包服务 registry.cn-hangzhou.aliyuncs.com/edas/demo-frontend-service,设置版本号为 20181111。
-
方法一:编写 Dockerfile
docker build -t demo-frontend-service:20181111 -f /tmp/Dockerfile . docker tag demo-frontend-service:20181111 registry.cn-hangzhou.aliyuncs.com/edas/demo-frontend-service:20181111
-
方法二:使用本地 docker 命令 / 方法三:在 Docker 容器内下载远程文件
export IMAGE_ID=`docker ps -a -f name=edas-build-package --format {{.ID}}` && docker commit $IMAGE_ID registry.cn-hangzhou.aliyuncs.com/edas/demo-frontend-service:20181111
在文档使用中是否遇到以下问题
更多建议
匿名提交