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'
#############################
###########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 ","[email protected]" ]
########开放SSH服务端口##########
EXPOSE   22

原文地址:http://blog.51cto.com/breaklinux/2120195

时间: 2024-11-10 18:56:34

Docker 标准化镜像制作的相关文章

测试环境docker化(一)—基于ndp部署模式的docker基础镜像制作

本文来自网易云社区 作者:孙婷婷 背景 我所在测试项目组目前的测试环境只有一套,在项目版本迭代过程中,开发或产品偶尔会在测试环境进行数据校验,QA人数在不断增加,各个人员在负责不同模块工作时也会产生脏数据,导致QA在功能测试和接口测试过程中需要清理测试环境增加工作量,同时QA组在进行异常测试等多维度质量保障时也希望有多套环境进行数据隔离.但目前测试环境多套隔离操作麻烦,每隔离一套环境需要修改大量配置.数据库重新建表到调试可用,在开发的帮助下至少需要3天的时间,在这种场景下,我们借鉴组内大数据QA

docker之镜像制作

#:下载镜像并初始化系统 [email protected]:~# docker pull centos #:创建目录 [email protected]:/opt# mkdir dockerfile/{web/{nginx,tomcat,jdk,apahce},system/{linux,ubuntu,redhat}} -pv [email protected]:/opt# cd dockerfile/web/nginx/ #:编写dockerfile [email protected]:/o

Docker学习笔记1 :镜像制作

参考资源: http://blog.csdn.net/kongxx?viewmode=contents http://my.oschina.net/feedao/blog ============================== 运行环境 win8.1 + virtual box, 运行 centos6.4 64bit, 内网通过代理上网. 如下操作基本都在root下进行. 目的 尝试自己建立Docker镜像 基础工作 1,阿里云镜像 执行如下脚本,将资源镜像执行阿里云 #!/bin/bas

Centos7制作docker初始镜像

Centos7用febootstrap制作docker初始镜像包 使用工具:febootstrap 下载地址:http://down.51cto.com/data/2330414 使用命令: febootstrap -i bash -i wget -i yum -i iputils -i iproute -i man -i vim -i openssh-server -i openssh-clients -i tar -i gzip centos7  /tmp/centos-image/  ht

Docker笔记三 Docker镜像制作

Docker笔记三 Docker镜像制作 1.Docker镜像制作方法: docker commit 保存当前container的状态到镜像,生成image. docker build 利用dockerfile自动化生成image. 2.制作方法 docker commit方式 #启动镜像名称为centos的一个容器(container)  [[email protected] ~]#docker run -it centos /bin/bash #在容器内安装httpd服务 [[email p

docker中如何制作自己的基础镜像

一.本地镜像 举个例子:现在把自己的开发环境打包,取名为centos6-base.tar,然后在docker中,以centos6-base.tar作为基准镜像. 1.创建自己的镜像,放置于/root目录下: #tar --numeric-owner --exclude=/proc --exclude=/sys -cvf centos6-base.tar / 需要注意的是,文件打包支持的类型只有(.tar, .tar.gz, .tgz, .bzip, .tar.xz, or .txz)这几种. 2

docker基础——关于安装、常用指令以及镜像制作初体验

为什么使用docker docker就是一个轻量级的虚拟机,他解决的是服务迁移部署的时候环境配置问题.比如常见的web服务依赖于jdk.Tomcat.数据库等工具,迁移项目就需要在新的机器重新配置这些,不光麻烦,而且可能配错. 如果能够将整个服务连同他依赖的外部环境一同打包就好了,docker就是这么干的.他将配置好的软件打包成image,在新的机器里面启动这个image即可 当然我所理解的只是一小部分,docker还有提供弹性云服务.组建微服务架构等方面的应用 最后,相对于传统虚拟机,dock

Docker 之 基于容器的镜像制作

1  概述 镜像包含启动容器所需的文件系统和内容,可以理解为打包的文件,用于创建并启动docker容器. 镜像的生成途径有三个: 1.基于dockerfile实现,镜像制作的程序文件 2.基于容器实现,启动容器后,将新的操作制作为新镜像 3.docker hub automated builds 镜像文件采用分层构建机制,最底层为bootfs,上面为rootfs,rootfs上还可以有多层.位于最下层的镜像文件为父镜像(parent image),最底层为基础镜像(base image,root

Docker快速入门——Docker镜像制作

Docker快速入门--Docker镜像制作 一.Dockerfile脚本 1.Dockerfile脚本简介 Dockerfile是一个文本文件,其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容就是描述该层应当如何构建.Dockerfile文件示例如下: ## Dockerfile文件格式 # This dockerfile uses the ubuntu image # VERSION 2 - EDITION 1 # Author: docker_us