FROM:指定基础镜像,必须为第一个命令
MAINTAINER: 维护者信息
RUN:构建镜像时执行的命令
ADD:将本地文件添加到容器中,tar类型文件会自动解压(网络压缩资源不会被解压),可以访问网络资源,类似wget
COPY:功能类似ADD,但是是不会自动解压文件,也不能访问网络资源
CMD:构建容器后调用,也就是在容器启动时才进行调用。
ENTRYPOINT:配置容器,使其可执行化。配合CMD可省去"application",只使用参数。
LABEL:用于为镜像添加元数据
ENV:设置环境变量
EXPOSE:指定于外界交互的端口
WORKDIR:工作目录,类似于cd命令
Dockerfile
#base image FROM centos # MAINTAINER MAINTAINER lidd95@chinaunicom.cn #RUN 执行以下命令 RUN mkdir /home/docker #相当于cd WORKDIR /home/docker #ADD 文件放在当前目录下,拷过去会自动解压 ADD minecraft_server.1.10.2.jar /home/docker ADD mc_start.sh /home/docker #RUN 执行以下命令 #安装jdk RUN yum -y install java-1.8.0-openjdk RUN java -Xms120m -Xmx160m -jar /home/docker/minecraft_server.1.10.2.jar nogui RUN sed -i 's/eula = false/eula = true/g' ./eula.txt RUN chmod 777 /home/docker/mc_start.sh && cp -rf /home/docker/mc_start.sh /etc/profile.d && cp -rf /home/docker/mc_start.sh /etc/init.d WORKDIR /etc/profile.d RUN chkconfig --add /etc/profile.d/mc_start.sh &&chkconfig /etc/profile.d/mc_start.sh on #EXPOSE 映射端口 EXPOSE 25565
mc_start.sh
#!/bin/bash # chkconfig: 2345 10 90 # description: mc_start .... #启动服务器 echo "服务启动中..." sed -i 's/false/true/g' ./eula.txt java -Xms120m -Xmx160m -jar /home/docker/minecraft_server.1.10.2.jar nogui echo "服务启动成功..."