Docker使用-完整的Dockerfile
来源:互联网 发布:f.lux for mac下载 编辑:程序博客网 时间:2024/04/27 19:24
# Docker for CentOS 7#Base imageFROM centos:7#WhoMAINTAINER ShiManQiang "shimanqiang@huizhaofang.com"ADD motd /etc/motd#更换repo镜像源-替换为网易的镜像源ADD CentOS7-Base-163.repo /etc/yum.repos.d/CentOS7-Base-163.repo#RUN cd /etc/yum.repos.d && mv CentOS-Base.repo CentOS-Base.repo.bk && wget http://mirrors.163.com/.help/CentOS7-Base-163.repo && yum update && yum clean all && yum makecache#生成缓存RUN yum update -y && yum makecache##########################################基本软件####################################################RUN \ yum install -y vim openssh-clients openssl-devel openssh-server wget curl lrzsz supervisor git tree net-tools less telnet lsof sudo psmisc zip unzip python subversion && \ yum clean all#RUN yum install -y mysql-devel redis && yum clean all##########################################oracle jdk###################################################RUN \ mkdir /mysoft && cd /mysoft && \ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u121-b13/e9e7ea248e2c4826b92b3f075a80e441/jdk-8u121-linux-x64.tar.gz && \ #tar -zxvf jdk-8u121-linux-x64.tar.gz && \ tar -zxvf $(ls) && \ mv $(ls -d */) oracle-jdk && \ mkdir -p /usr/local/java && \ mv oracle-jdk /usr/local/java/oracle-jdk && \ rm -rf /mysoftENV JAVA_HOME /usr/local/java/oracle-jdk/ENV PATH $PATH:$JAVA_HOME/bin##########################################nginx#########################################################RUN yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel tar && yum clean all#切换目录RUN \ mkdir /mysoft && \ cd /mysoft && \ wget http://nginx.org/download/nginx-1.11.10.tar.gz && \ tar -zxvf nginx-1.11.10.tar.gz && \ cd nginx-1.11.10 && \ ./configure && \ make && \ make install && \ rm -rf /mysoftENV PATH $PATH:/usr/local/nginx/sbin/############################################gradle############################################Gradle工具ADD gradle-3.4-all.zip /gradle-3.4-all.zip#提前打包好的app需要的libs,Gradle组织方式COPY gradle.lib.tar.gz /gradle.lib.tar.gzRUN \ yum install -y zip unzip python subversion && yum clean all && \ #wget https://services.gradle.org/distributions/gradle-3.4-all.zip && \ mkdir -p /usr/local/gradle && \ unzip gradle-3.4-all.zip -d /usr/local/gradle && \ mkdir -p /data/www/payment/ && \ mkdir -p /data/www/comm_projectRUN tar -zxvf gradle.lib.tar.gz -C /usr/local/gradle/#Gradle环境ENV GRADLE_HOME /usr/local/gradle/gradle-3.4/#修改Gradle下载lib目录ENV GRADLE_USER_HOME /usr/local/gradle/.gradle#PATHENV PATH $PATH:$GRADLE_HOME/bin########################################设置环境变量#######################################此处设置是因为当ssh登录docker容器,ENV设置的变量不生效问题RUN \ echo "JAVA_HOME=/usr/local/java/oracle-jdk/" >> /etc/profile && \ echo "CLASSPATH=$JAVA_HOME/lib/" >> /etc/profile && \ echo "GRADLE_HOME=/usr/local/gradle/gradle-3.4/" >> /etc/profile && \ echo "GRADLE_USER_HOME=/usr/local/gradle/.gradle" >> /etc/profile && \ echo "PATH=$PATH:$JAVA_HOME/bin:$GRADLE_HOME/bin:/usr/local/nginx/sbin/" >> /etc/profile && \ echo "export PATH JAVA_HOME CLASSPATH GRADLE_HOME GRADLE_USER_HOME" >> /etc/profile####################################app需要的脚本文件#####################################RUN \ mkdir -p /data/www/payment/ && \ mkdir -p /data/www/comm_project##增加app需要的脚本到目录:/data/www/payment/ADD deploy.py /data/www/payment/deploy.pyADD deploy_conf.ini /data/www/payment/deploy_conf.ini#设置脚本可执行RUN chmod a+x /data/www/payment/deploy.py##增加app需要的脚本到目录:/data/www/comm_project/ADD deploy.py /data/www/comm_project/deploy.pyADD deploy_conf.ini /data/www/comm_project/deploy_conf.iniRUN chmod a+x /data/www/comm_project/deploy.py#######################################其他配置############################################给root创建密码密码RUN echo "root:root123" | chpasswd# 添加测试用户hfqtest,密码hfqtest,并且将此用户添加到sudoers里 RUN useradd hfqtest RUN echo "hfqtest:hfqtest" | chpasswd RUN echo "hfqtest ALL=(ALL) ALL" >> /etc/sudoers# 初始化ssh登陆#将sshd的UsePAM参数设置成no#RUN sed -i 's/UsePAM yes/UsePAM no/g' /etc/ssh/sshd_configRUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''RUN ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''RUN ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key -N ''RUN echo "RSAAuthentication yes" >> /etc/ssh/sshd_configRUN echo "PubkeyAuthentication yes" >> /etc/ssh/sshd_config # 启动sshd服务并且暴露22端口 RUN mkdir /var/run/sshd EXPOSE 22EXPOSE 80 443#EXPOSE 12007#开机启动sshdRUN systemctl enable sshd.service#ENTRYPOINT ["/usr/sbin/sshd", "-D"]CMD ["/usr/sbin/sshd", "-D"]#CMD ["/usr/sbin/init"]###############################################构建脚本#####################################构建image镜像#docker build -t hfq/centos7:eden .#启动container后台运行提供sshd服务#docker run -d -P --name <container name> hfq/centos7:eden#进入sshd启动的container#docker exec -it <container name or id> /bin/bash#docker rm $(docker ps -a | grep "xxx/jedi:v5" | awk '{print $1}')#操作记录#docker run -d -p 30001:12007 -p 31001:22 -P --name hfq-jedi-smq-eden hfq/centos7:eden#docker run -d -p 30002:12007 -p 31002:22 -P --name hfq-jedi-zfc-eden hfq/centos7:eden#docker run -d -p 30003:12007 -p 31003:22 -P --name hfq-jedi-wx-eden hfq/centos7:eden#docker run -d -p 30004:12007 -p 31004:22 -P --name hfq-jedi-zxf-eden hfq/centos7:eden#docker run -d -p 30005:12007 -p 31005:22 -P --name hfq-jedi-wjl-eden hfq/centos7:eden#docker run -d -p 30006:12007 -p 31006:22 -P --name hfq-jedi-liqiang-eden hfq/centos7:eden
0 0
- Docker使用-完整的Dockerfile
- 使用Dockerfile创建自己的docker镜像
- docker筑基篇-04-使用Dockerfile构建自己的镜像
- 【Dockerfile】使用Dockerfile创建带Apache服务的Centos Docker镜像
- 【Dockerfile】使用Dockerfile创建带nginx服务的Centos Docker镜像
- Docker实战:使用Dockerfile创建带Apache服务并支持ssh的Centos Docker镜像
- Docker实战:使用Dockerfile创建带nginx服务并支持ssh的Centos Docker镜像
- Docker实战:使用Dockerfile创建带tomcat服务并支持ssh的Centos Docker镜像
- docker--dockerfile
- Docker--使用Dockerfile构建新镜像--RHEL7.2
- Docker-- 如何使用Dockerfile构建镜像
- 使用Dockerfile创建docker镜像
- 使用Dockerfile创建docker镜像
- 使用Dockerfile制作Docker镜像
- 使用Dockerfile创建docker镜像
- 如何使用Dockerfile构建Docker镜像
- Docker实战:使用Dockerfile创建镜像
- 使用Dockerfile创建docker镜像
- 相邻两数最大差值
- VS2010-MFC下控件Win7风格设置
- java开发中的关键字
- 每日打卡 2017.03.15 北大信科2017机试真题题解
- 面向对象OO——类之间的关系
- Docker使用-完整的Dockerfile
- JAVA-calendar.add(Calendar.Month,1):1月31号加一月是多少号?
- Docker构建镜像
- Python3 中文文件读写
- javascript的基本概念
- iTunes Connect
- 【复习linux的使用】(四)——权限/进程
- 不同的梯度下降算法
- 【Java NIO的深入研究6】JAVA NIO之Scatter-Gather