SpringBoot日誌
阿新 • • 發佈:2020-11-22
Dockfile
步驟
1. 手寫符合規範的dockerfile檔案
2. docker build 建立一個自定義的映象
3. docker run 執行
dockerfile規範
保留字大寫,後跟引數
#註釋
每條指令都會形成一個新的映象
例如:dockerhub上的centos、redis的例子
FROM scratch MAINTAINER https://github.com/CentOS/sig-cloud-instance-images ADD centos-6-docker.tar.xz / LABEL org.label-schema.schema-version="1.0" \ org.label-schema.name="CentOS Base Image" \ org.label-schema.vendor="CentOS" \ org.label-schema.license="GPLv2" \ org.label-schema.build-date="20181006" CMD ["/bin/bash"]
FROM debian:buster-slim # add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added RUN groupadd -r -g 999 redis && useradd -r -g redis -u 999 redis # grab gosu for easy step-down from root # https://github.com/tianon/gosu/releases ENV GOSU_VERSION 1.12 RUN set -eux; \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends ca-certificates dirmngr gnupg wget; \ rm -rf /var/lib/apt/lists/*; \ ... ENV REDIS_VERSION 6.0.9 ENV REDIS_DOWNLOAD_URL http://download.redis.io/releases/redis-6.0.9.tar.gz ENV REDIS_DOWNLOAD_SHA dc2bdcf81c620e9f09cfd12e85d3bc631c897b2db7a55218fd8a65eaa37f86dd RUN set -eux; \ \ savedAptMark="$(apt-mark showmanual)"; \ apt-get update; \ apt-get install -y --no-install-recommends \ ; \ rm -rf /var/lib/apt/lists/*; \ \ wget -O redis.tar.gz "$REDIS_DOWNLOAD_URL"; \ echo "$REDIS_DOWNLOAD_SHA *redis.tar.gz" | sha256sum -c -; \ mkdir -p /usr/src/redis; \ tar -xzf redis.tar.gz -C /usr/src/redis --strip-components=1; \ rm redis.tar.gz; \ \ ..... redis-cli --version; \ redis-server --version RUN mkdir /data && chown redis:redis /data VOLUME /data WORKDIR /data COPY docker-entrypoint.sh /usr/local/bin/ ENTRYPOINT ["docker-entrypoint.sh"] EXPOSE 6379 CMD ["redis-server"]
-
FROM 指定基礎映象(映象源)
-
MAINTAINER 指定作者、郵箱
-
RUN 映象構建時執行的命令
-
CMD 容器啟動時執行的命令,僅最後一個生效,會被docker run的其他引數覆蓋
-
ENTRYPOINT 追加容器執行時的命令
-
EXPOSE 當前容器暴露的埠
-
WORKDIR 建立容器後,終端預設登陸進來的工作目錄
-
ENV 指定環境變數
-
ADD 將宿主機目錄(源路徑:構建上下文目錄)下的檔案拷貝進映象中(目標路徑),並且解壓縮和處理相應的url
-
COPY 拷貝
-
LABEL 標籤
-
VOLUMN 容器資料卷,用於持久化儲存資料