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 "服務啟動成功..."