使用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路径>

posted @ 2017-02-21 15:02  fengzp  阅读(4941)  评论(0编辑  收藏  举报