• 使用dockerfile创建镜像


    dockerfile命令

    1、FROM(指定基础镜像)

    FROM < image>:< tag>

    2、MAINTAINER(指定镜像创建者信息)

    MAINTAINER

    3、RUN(运行命令)

    RUN可以运行任何被基础image支持的命令。

    例如: RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai

    4、ENV(设置环境变量)

    例如:ENV LANG en_US.UTF-8

    5、WORKDIR(切换目录)

    相当于cd命令,对RUN,CMD,ENTRYPOINT生效。

    6、CMD(设置容器启动时执行的操作)

    例如:CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out

    7、EXPOSE(指定容器需要映射到宿主机器的端口)

    例如:EXPOSE 8080 9090

    8、VOLUME(指定挂载点)

    例如:VOLUME $CATALINA_HOME/webapps $CATALINA_HOME/logs $CATALINA_HOME/conf

    下面是一些dockfile例子

    mysql

    FROM mysql:5.6.34
    
    MAINTAINER  fengzp <fengzp@gzyitop.com>
    RUN apt-get update
    RUN apt-get -y install vim
    RUN usermod -u 1000 mysql
    RUN mkdir -p /var/run/mysqld
    RUN chmod -R 777 /var/run/mysqld
    
    VOLUME /etc/mysql
    VOLUME /script
    

    构建容器:

    docker build -t mysql-5.6.34 .
    
    docker run --name mysql -h mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql-5.6.34 --character-set-server=utf8 --collation-server=utf8_general_ci
    
    docker cp mysql:/etc/mysql/ /Users/fengzp/Documents/docker/mysql/conf
    docker cp mysql:/var/lib/mysql/ /Users/fengzp/Documents/docker/mysql/data
    docker cp mysql:/script /Users/fengzp/Documents/docker/mysql/
    
    docker stop mysql && docker rm mysql
    
    docker run --name mysql -h mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -v /Users/fengzp/Documents/docker/mysql/data:/var/lib/mysql -v /Users/fengzp/Documents/docker/mysql/script:/script -v /Users/fengzp/Documents/docker/mysql/conf:/etc/mysql -d mysql-5.6.34 --character-set-server=utf8 --collation-server=utf8_general_ci
    

    tomcat

    #tomcat8 openjdk8
    
    FROM centos:7
    
    MAINTAINER fengzp <fengzp@gzyitop.com>
    
    ENV LANG en_US.UTF-8
    ENV TOMCAT_VERSION 8.5.13
    ENV CATALINA_HOME /opt/apache-tomcat-$TOMCAT_VERSION
    ENV PATH $CATALINA_HOME/bin:$PATH
    ENV JDK_VERSION 1.8.0
    
    WORKDIR $CATALINA_HOME
    
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    
    RUN yum -y install java-$JDK_VERSION-openjdk-devel && rm -rf /var/cache/yum/*
    ENV JAVA_HOME /usr/lib/jvm/java-openjdk
    
    RUN yum -y install wget
    RUN cd /opt/ && wget "http://apache.fayea.com/tomcat/tomcat-8/v$TOMCAT_VERSION/bin/apache-tomcat-$TOMCAT_VERSION.tar.gz"
    RUN cd /opt/ && tar -zxf apache-tomcat-$TOMCAT_VERSION.tar.gz
    RUN cd /opt/ && rm -rf apache-tomcat-$TOMCAT_VERSION.tar.gz
    RUN chmod +x $CATALINA_HOME/bin/*.sh
    
    VOLUME $CATALINA_HOME/webapps 
    VOLUME $CATALINA_HOME/logs
    VOLUME $CATALINA_HOME/conf
    
    EXPOSE 8080
    
    CMD $CATALINA_HOME/bin/startup.sh && tail -F $CATALINA_HOME/logs/catalina.out
    

    构建容器:

    docker build -t tomcat8-jdk8 .
    
    docker run -d --name tomcat8 -h tomcat8 tomcat8-jdk8
    
    docker cp tomcat8:/opt/apache-tomcat-8.5.13/webapps /Users/fengzp/Documents/docker/tomcat8/
    docker cp tomcat8:/opt/apache-tomcat-8.5.13/conf /Users/fengzp/Documents/docker/tomcat8/
    docker cp tomcat8:/opt/apache-tomcat-8.5.13/logs /Users/fengzp/Documents/docker/tomcat8/
    
    docker stop tomcat8 && docker rm tomcat8
    
    docker run -d --name tomcat8 -h tomcat8 -p 42000:8080 -v /Users/fengzp/Documents/docker/tomcat8/webapps:/opt/apache-tomcat-8.5.13/webapps -v /Users/fengzp/Documents/docker/tomcat8/logs:/opt/apache-tomcat-8.5.13/logs -v /Users/fengzp/Documents/docker/tomcat8/conf:/opt/apache-tomcat-8.5.13/conf tomcat8-jdk8
    

    nginx

    FROM nginx:1.11.10
    
    MAINTAINER  fengzp <fengzp@gzyitop.com>
    
    ENV LANG en_US.UTF-8
    
    RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
    RUN apt-get update
    RUN apt-get -y install vim
    
    VOLUME /usr/share/nginx/html
    VOLUME /etc/nginx/conf.d
    VOLUME /var/log/nginx
    

    构建容器:

    docker build -t nginx-fzp .
    
    docker run -d --name nginx -h nginx --restart always -p 80:80 -p 3343:3343 nginx-fzp
    
    docker cp nginx:/usr/share/nginx/html /Users/fengzp/Documents/docker/nginx/html
    docker cp nginx:/etc/nginx/conf.d /Users/fengzp/Documents/docker/nginx/conf.d
    docker cp nginx:/var/log/nginx /Users/fengzp/Documents/docker/nginx/logs
    
    docker stop nginx && docker rm nginx
    
    docker run -d --name nginx -h nginx --restart always -p 80:80 -p 3343:3343 -v /Users/fengzp/Documents/docker/nginx/html:/usr/share/nginx/html -v /Users/fengzp/Documents/docker/nginx/conf.d:/etc/nginx/conf.d -v /Users/fengzp/Documents/docker/nginx/logs:/var/log/nginx nginx-fzp
    

    构造镜像命令

    docker build -t <私服地址:>imagesname <Dockerfile路径>

  • 相关阅读:
    tsm 存放磁带到带库
    tsm 切记
    添加路由时啥时候是dev啥时候是gw
    网卡上绑定多个IP地址
    更改本地环回地址引发的血案
    自学网络 arp_ignore/arp_announce
    do_try_to_free_pages
    如何用ssh实现端口的映射
    显示系统中所有的socket信息
    ifstat查看网络流量的原理
  • 原文地址:https://www.cnblogs.com/andyfengzp/p/6424150.html
Copyright © 2020-2023  润新知