Dockerfile 指令FROM
指定基礎映象
FROM ubuntu:14.04
RUN
在映象內部執行一些命令,比如安裝軟體,配置環境等,換行可以使用""
RUN groupadd -r mysql && useradd -r -g mysql mysql
ENV
設定變數的值,ENV MYSQL_MAJOR 5.7,可以透過docker run --e key=value修改,後面可以直接使 用${MYSQL_MAJOR}
ENV MYSQL_MAJOR 5.7
VOLUME
指定的資料掛載
VOLUME /var/lib/mysql
COPY
將主機的檔案複製到映象內,如果目錄不存在,會自動建立所需要的目錄,注意只是複製,不會提取和 解壓
COPY docker-entrypoint.sh /usr/local/bin/
ADD
將主機的檔案複製到映象內,和COPY類似,只是ADD會對壓縮檔案提取和解壓
ADD application.yml /etc/itcrazy2016/
WORKDIR
指定映象的工作目錄,之後的命令都是基於此目錄工作,若不存在則建立
WORKDIR /usr/local WORKDIR tomcat RUN touch test.txt
CMD
容器啟動的時候預設會執行的命令,若有多個CMD命令,則最後一個生效
CMD ["mysqld"] 或 CMD mysqld
ENTRYPOINT和CMD的使用類似
ENTRYPOINT ["docker-entrypoint.sh"]
和cmd不同
docker run執行時,會覆蓋CMD命令,而ENTRYPOINT不會
EXPOSE指定映象要暴露的埠,啟動映象時,可以使用-p將該埠對映給宿主機
EXPOSE 3306
根據一個SpringBoot的專案生成一個image準備一個SpringBoot專案-->jarmvn clean package建立Dockerfile ,生成image
FROM openjdk:8 #誰來維護MAINTAINER zcl LABEL name="dcokerfile-demo" version="1.0" author="zcl"COPY dockerfile-demo-0.0.1-SNAPSHOT.jar dockerfile-image.jar CMD ["java","-jar","dockerfile-image.jar"]
基於Dockerfile構建映象
docker build -t test-docker-image .
啟動container
docker run -d --name user01 -p 6666:8080 test-docker-image
檢視啟動日誌
docker log user01
最新評論