Образ является основой контейнера. Контейнер работает на основе содержимого, определённого в образе. Образ состоит из нескольких слоёв. Каждый слой включает изменения, сделанные на основе предыдущего слоя.
Обычно Dockerfile используется для настройки образов. Dockerfile — это текстовый файл, содержащий различные инструкции. Каждая инструкция используется для создания слоя образа и описывает, как построить слой образа.
В этом разделе описывается, как написать Dockerfile.
Dockerfile различаются в зависимости от приложений. Dockerfile необходимо писать, исходя из реальных требований к сервису.
vi Dockerfile
Содержимое выглядит следующим образом:
# CentOS 7.1.1503 is used as the base image.FROM centos:7.1.1503# Create a folder to store data and dependency files. You are advised to write multiple commands into one line to reduce the image size.RUN mkdir -p /usr/local/mongodb/data \&& mkdir -p /usr/local/mongodb/bin \&& mkdir -p /root/apache-tomcat-7.0.82 \&& mkdir -p /root/jdk1.8.0_151# Copy the files in the apache-tomcat-7.0.82 directory to the container path.COPY ./apache-tomcat-7.0.82 /root/apache-tomcat-7.0.82# Copy the files in the jdk1.8.0_151 directory to the container path.COPY ./jdk1.8.0_151 /root/jdk1.8.0_151# Copy the files in the mongodb-linux-x86_64-rhel70-3.2.9 directory to the container path.COPY ./mongodb-linux-x86_64-rhel70-3.2.9/bin /usr/local/mongodb/bin# Copy start_tomcat_and_mongo.sh to the /root directory of the container.COPY ./start_tomcat_and_mongo.sh /root/# Enter Java environment variables.RUN chown root:root -R /root \&& echo "JAVA_HOME=/root/jdk1.8.0_151 " >> /etc/profile \&& echo "PATH=\$JAVA_HOME/bin:$PATH " >> /etc/profile \&& echo "CLASSPATH=.:\$JAVA_HOME/lib/dt.jar:\$JAVA_HOME/lib/tools.jar" >> /etc/profile \&& chmod +x /root \&& chmod +x /root/start_tomcat_and_mongo.sh# When the container is started, commands in start_tomcat_and_mongo.sh are automatically run. The file can be one or more commands, or a script.ENTRYPOINT ["/root/start_tomcat_and_mongo.sh"]
В приведённой выше информации: