文档中心 > 容器服务

一、写在前面


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

参考资料:

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

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


二、制作和上传自定义镜像

1.镜像制作


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


2.镜像上传


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

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


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

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


1)新建命名空间

2)新建仓库


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



image.png


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


image.png


注意:

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

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


4)打tag并且push


image.png


三、使用自定义镜像


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


image.png


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


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


image.png


四、登录阿里云容器镜像服务的密码


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

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

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


image.png


五、自定义镜像部署失败


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)其他部署错误

见应用部署常见问题:应用部署常见问题 文档中的问题2。


六、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下了,那么环境变量就可以按照图中设置。


七、Tomcat官方镜像更多文件配置


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


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

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


image.png


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


八、PHP官方镜像更多文件配置


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


image.png


九、PHP官方镜像扩展


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

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

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


FAQ

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