注意:以下文档只适用于TOP接口,请谨慎使用!

文档中心 > 聚石塔

镜像相关常见问题

更新时间:2020/03/17 访问次数:1307

0.写在前面

容器镜像与ECS系统镜像是两个概念,容器镜像是运行docker容器实例的基础。

参考资料:

https://www.runoob.com/docker/docker-image-usage.html

https://www.cnblogs.com/bethal/p/5942369.html

 

1.制作和上传自定义镜像

1)镜像制作

关于镜像制作,可以在网上搜到很多相关资料,这里就不介绍了。(后面补充基本资料)

 

2)镜像上传

镜像push到阿里云容器镜像服务,就可以在聚石塔容器平台使用了(平台上的自定义镜像)。

阿里云容器镜像服务文档:https://help.aliyun.com/document_detail/60997.html

 

聚石塔-资源视图-容器镜像服务:

https://console.cloud.tmall.com/resourceView#/aliyun/product?productCode=cr

2.1)新建命名空间

2.2)新建仓库

屏幕快照 2020-02-17 下午3.20.25.png

 

image.png

 

2.3)本地登录阿里云容器镜像服务

image.png

注意:

阿里云容器镜像服务登录用户名非淘宝nick,请从该页面(仓库详情页)直接拷贝登录命令

阿里云容器镜像服务登录密码由镜像服务管理,非聚石塔账号的密码

 

2.4)打tag并且push

image.png

 

2.使用自定义镜像

1)如果是第一次做应用发布的配置

image.png

选择“高级设置”,并点击下一步,就可以选择自定义镜像了,并且可以做相关的配置

 

2)如果之前做过了部署配置,可以新建或者/编辑部署配置,选择自定义镜像就行

image.png

 

 

3.登录阿里云容器镜像服务的密码

注意,登录密码并非淘宝账号密码

第一次登录阿里云容器镜像服务的控制台,系统会生成一个初始登录密码。

如果初始密码忘记,可以在镜像服务控制台重置:

image.png

 

 

4.自定义镜像部署失败

1)容器运行完退出

表象:部署日志,Started container xxx 紧接着 Back-off restarting failed container

Snip20200218_1.png

原因:说明容器运行完(docker run -d xxx)便退出了。K8S集群认为容器失败,尝试重新启动容器

解决:重新打镜像,保证entrypoint或者cmd对应的进程不会退出

例子:

Dockerfile

FROM centos:7

ADD jdk1.6.tar.gz /usr/local/
ENV JAVA_HOME /usr/local/jdk1.6.0_43/
ENV JRE_HOME $JAVA_HOME/jre
ENV CLASSPATH $JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
ENV PATH $JAVA_HOME/bin:$PATH
ENV JAVA_FONTS $JAVA_HOME/jre/lib/fonts

RUN mkdir -p /acs/user
COPY start.sh /acs/user
RUN chmod +x /acs/user/start.sh

ENTRYPOINT /acs/user/start.sh

 

ENTRYPOINT启动脚本

#!/bin/sh
# 还可以设置环境变量,读取JAVA_OPT 设置jvm参数
java -jar test.jar

while :
do
  sleep 60
done

启动脚本最后的while循环,保证当前进程不会退出

 

2)其他部署错误

见应用部署常见问题:https://www.yuque.com/fczggw/ec07di/sf19s3#CSwn6

 

5.JAR包运行java进程

1)使用java6jar java7jar java8jar等官方镜像

官方镜像中的启动命令为  java ${JAVA_OPT} -jar ${JAR_DIR}/${JAR_NAME} &

 

2)设置环境变量

image.png

注意,上传时不能直接上传要运行的jar包,因为部署时会默认做一次unzip解压。

举个例子,想运行hello-world.jar,可以将这个jar包打包成.zip文件。这样unzip后,hello-world.jar就会在/acs/code下了,那么环境变量就可以按照图中设置

 

6.Tomcat官方镜像更多文件配置

tomcat8已支持配置web.xml,重新选择镜像,或者新建部署配置。

 

其他tomcat官方镜像或者已经配置好的部署配置,增加一个文件挂载项就行:

官方镜像中,tomcat安装在/acs/user/tomcat,例如,想自定义web.xml,可以设置文件挂载

image.png

注:其实同理,tomcat/conf或者bin下的其他文件,也可以通过增加文件挂载项的方式进行自定义配置,

 

 

7.PHP官方镜像更多文件配置

php官方镜像中,配置文件在/acs/user/script/tpl目录,如果需要自定义.ini,php-fpm等文件,请设置文件挂载。例如:

image.png

 

8.PHP官方镜像扩展

官方镜像默认支持如下扩展:mqp, exif,imagick, memcache,memcached,mongo,redis,stomp,zookeeper。

用法:部署配置中配置PHP_EXTENTSIONS字段

其他扩展:官方镜像无法支持,请通过自定义镜像解决

FAQ

关于此文档暂时还没有FAQ
返回
顶部