FROM 命令。用法, FROM <image>:<tag>。 FROM 命令告诉 docker 我们构建的镜像是以哪个(发行版)镜像为基础的
RUN 命令。用法 RUN 。 RUN 后面接要执行的命令,比如,我们想在镜像中安装 vim,只需在
Dockfile 中写入 RUN yum install -y vim
ENV 命令。用法,ENV 。 ENV 命令主要用于设置容器运行时的环境变量
ADD 命令。用法, ADD 。 ADD 主要用于将宿主机中的文件添加到镜像中
基于 dockerfile 制作 tomcat 镜像
首先建一个目录构建我们的环境。
1 2
[root@localhost ~]# mkdir tomcat_centos [root@localhost ~]# cd tomcat_centos
上传 tomcat 和 jdk 到该目录下。
1 2
[root@localhost tomcat_centos]# ls apache-tomcat-7.0.54.tar.gz jdk-7u65-linux-x64.tar.gz
编辑 Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12
[root@localhost tomcat_centos]# vim Dockerfile FROM centos:1 MAINTAINER from bistros <bistros@163.com> #copy jdk and tomcat into image ADD ./apache-tomcat-7.0.54.tar.gz /root ADD ./jdk-7u65-linux-x64.tar.gz /root #set environment variable ENV JAVA_HOME /root/jdk1.7.0_65 ENV PATH $JAVA_HOME/bin:$PATH #define entry point which will be run first when the container starts up ENTRYPOINT /root/apache-tomcat-7.0.54/bin/startup.sh && tail -F /root/apache-tomcat- 7.0.54/logs/catalina.out
[root@localhost tomcat_centos]# docker images bistros/tomcat:centos REPOSITORY TAG IMAGE ID CREATED SIZE bistros/tomcat centos c0c55ad98c79 About a minute ago 502.7 MB
运行镜像
手动映射主机端口启动
1 2 3 4 5 6 7 8
[root@localhost tomcat_centos]# docker run -d -p 8090:8080 bistros/tomcat:centos 65a0f0910f174132e009ca686b283c0dc58df0dd3000c144cd4c175f2078de37 [root@localhost tomcat_centos]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES5 / 5 65a0f0910f17 bistros/tomcat:centos "/bin/sh -c '/root/ap" 50 seconds ago Up 48 seconds 0.0.0.0:8090->8080/tcp pensive_kare
-p 指定主机 80 端口与容器 8080 端口进行绑定
-d 指定容器运行后与当前 tty 分离,后台运行
65a0 是镜像的 ID 前 4 位。
通过 http://宿主机 IP:8090,即可看见我们熟悉的 tomcat 首页了。
自动映射主机端口的启动
1 2 3 4 5 6 7 8 9
[root@localhost tomcat_centos]# docker run -d -p 8080 --name tomcat bistros/tomcat:centos 2f20477608f8d335a3424acd6f54ad5900db86bdbf48af2ea2777159a7646566 [root@localhost tomcat_centos]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 2f20477608f8 bistros/tomcat:centos "/bin/sh -c '/root/ap" 8 seconds ago Up 6 seconds 0.0.0.0:32768->8080/tcp tomcat