Docker 標準化鏡像製作


  1. 最近接觸docker 應用過程中發現很多製作鏡像踩得坑(如:sshd問題和docker 內部時區問題,處理中文字符集,添加發布系統ssh-key,便於自動化(ansiable 管理);

  2. 如下是踩坑過總結的docker-file 文件;

#########載入基礎鏡像######
FROM centos7:latest       
MAINTAINER ljx<[email protected]>
##########安裝常用命令包##########     
RUN yum -y install net-tools lsof openssh-server openssl openssl-devel   wget curl supervisor  
##########系統管理key文件###########
RUN curl http://xxxx/scripts/add_ops.sh | sh 
###########發佈系統key 認證#########
RUN curl http://xxxx:9090/scripts/add_jenkins.sh | sh
RUN mkdir /chj/data/ -p && mkdir /chj/app && mkdir /chj/devops && mkdir /chj/pkg && mkdir /chj/log && mkdir /chj/pkg/jdk/
##########設置CST時區##############
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone 
##########設置中文字符集###########
RUN  yum -y install kde-l10n-Chinese telnet  reinstall glibc-common &&   localedef -c -f UTF-8 -i zh_CN zh_CN.utf8 
ENV LANG zh_CN.UTF-8
ENV LC_ALL zh_CN.UTF-8
##########################################
###########設置時間#########
RUN yum -y install cron*  ntp && echo '*/5 * * * * /usr/sbin/ntpdate ntp1.aliyun.com >/dev/null 2>&1' >/var/spool/cron/root

###########ssh 服務配置###########
RUN sed -ri 's/session required pam_loginuid.so/#session required pam_loginuid.so/g' /etc/pam.d/sshd
RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N "" && ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N "" && ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ""
##########配置容器java 環境#######
COPY ./base/jdk /chj/pkg/jdk/
RUN chmod +x /chj/pkg/jdk/bin/* && ln -s /chj/pkg/jdk/bin/java  /usr/sbin/java
#########修改環境變量############
ADD ./base/bashrc /root/.bashrc
ADD ./base/supervisord.conf /etc/supervisord.conf
ADD ./base/ntp.ini /etc/supervisord.d/
ADD ./base/sshd.ini /etc/supervisord.d/sshd.ini
ADD ./base/setup.sh /opt  
RUN chmod a+x /opt/setup.sh 
ENTRYPOINT [ "bash", "/opt/setup.sh","exec ","$@" ]
########開放SSH服務端口##########
EXPOSE   22

 




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章